')
+ .prependTo($form);
+ }
+
+ return errorSummary;
+ };
+
+ var displayErrors = function (form, errors) {
+ var errorSummary = getValidationSummaryErrors(form)
+ .removeClass('validation-summary-valid')
+ .addClass('validation-summary-errors');
+
+ var items = $.map(errors, function (error) {
+ return '
' + error + '
';
+ }).join('');
+
+ var ul = errorSummary
+ .find('ul')
+ .empty()
+ .append(items);
+ };
+
+ var resetForm = function ($form) {
+ // We reset the form so we make sure unobtrusive errors get cleared out.
+ $form[0].reset();
+
+ getValidationSummaryErrors($form)
+ .removeClass('validation-summary-errors')
+ .addClass('validation-summary-valid')
+ };
+
+ var formSubmitHandler = function (e) {
+ var $form = $(this);
+
+ // We check if jQuery.validator exists on the form
+ if (!$form.valid || $form.valid()) {
+ $.post($form.attr('action'), $form.serializeArray())
+ .done(function (json) {
+ json = json || {};
+
+ // In case of success, we redirect to the provided URL or the same page.
+ if (json.success) {
+ location = json.redirect || location.href;
+ } else if (json.errors) {
+ displayErrors($form, json.errors);
+ }
+ })
+ .error(function () {
+ displayErrors($form, ['An unknown error happened.']);
+ });
+ }
+
+ // Prevent the normal behavior since we opened the dialog
+ e.preventDefault();
+ };
+
+ var loadAndShowDialog = function (id, link, url) {
+ var separator = url.indexOf('?') >= 0 ? '&' : '?';
+
+ // Save an empty jQuery in our cache for now.
+ dialogs[id] = $();
+
+ // Load the dialog with the content=1 QueryString in order to get a PartialView
+ $.get(url + separator + 'content=1')
+ .done(function (content) {
+ dialogs[id] = $('
' + content + '
')
+ .hide() // Hide the dialog for now so we prevent flicker
+ .appendTo(document.body)
+ .filter('div') // Filter for the div tag only, script tags could surface
+ .dialog({ // Create the jQuery UI dialog
+ title: link.data('dialog-title'),
+ modal: true,
+ resizable: true,
+ draggable: true,
+ width: link.data('dialog-width') || 600,
+ beforeClose: function () { resetForm($(this).find('form')); }
+ })
+ .find('form') // Attach logic on forms
+ .submit(formSubmitHandler)
+ .end();
+ });
+ };
+
+ // List of link ids to have an ajax dialog
+ var links = ['#loginLink', '#registerLink'];
+
+ $.each(links, function (i, id) {
+ $(id).click(function (e) {
+ var link = $(this),
+ url = link.attr('href');
+
+ if (!dialogs[id]) {
+ loadAndShowDialog(id, link, url);
+ } else {
+ dialogs[id].dialog('open');
+ }
+
+ // Prevent the normal behavior since we use a dialog
+ e.preventDefault();
+ });
+ });
+});
\ No newline at end of file
diff --git a/TeamGrade.Web/Scripts/_references.js b/TeamGrade.Web/Scripts/_references.js
new file mode 100644
index 0000000..d91a82a
--- /dev/null
+++ b/TeamGrade.Web/Scripts/_references.js
@@ -0,0 +1,5 @@
+///
+///
+///
+///
+///
\ No newline at end of file
diff --git a/TeamGrade.Web/Scripts/jquery-1.6.2-vsdoc.js b/TeamGrade.Web/Scripts/jquery-1.6.2-vsdoc.js
new file mode 100644
index 0000000..ebfe45f
--- /dev/null
+++ b/TeamGrade.Web/Scripts/jquery-1.6.2-vsdoc.js
@@ -0,0 +1,9134 @@
+/*
+* This file has been commented to support Visual Studio Intellisense.
+* You should not use this file at runtime inside the browser--it is only
+* intended to be used only for design-time IntelliSense. Please use the
+* standard jQuery library for all production use.
+*
+* Comment version: 1.6.2
+*/
+
+/*!
+* Note: While Microsoft is not the author of this script file, Microsoft
+* grants you the right to use this file for the sole purpose of either:
+* (i) interacting through your browser with the Microsoft website, subject
+* to the website's terms of use; or (ii) using the files as included with a
+* Microsoft product subject to the Microsoft Software License Terms for that
+* Microsoft product. Microsoft reserves all other rights to the files not
+* expressly granted by Microsoft, whether by implication, estoppel or
+* otherwise. The notices and licenses below are for informational purposes
+* only.
+*
+* Provided for Informational Purposes Only
+* MIT License
+*
+* Permission is hereby granted, free of charge, to any person obtaining a
+* copy of this software and associated documentation files (the "Software"),
+* to deal in the Software without restriction, including without limitation
+* the rights to use, copy, modify, merge, publish, distribute, sublicense,
+* and/or sell copies of the Software, and to permit persons to whom the
+* Software is furnished to do so, subject to the following conditions:
+*
+* The copyright notice and this permission notice shall be included in all
+* copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+* DEALINGS IN THE SOFTWARE.
+*
+* jQuery JavaScript Library v1.6.2
+* http://jquery.com/
+*
+* Copyright 2010, John Resig
+*
+* Includes Sizzle.js
+* http://sizzlejs.com/
+* Copyright 2010, The Dojo Foundation
+*
+*/
+(function (window, undefined) {
+
+ // Use the correct document accordingly with window argument (sandbox)
+ var document = window.document;
+ var jQuery = (function () {
+
+ // Define a local copy of jQuery
+ var jQuery = function (selector, context) {
+ ///
+ /// 1: $(expression, context) - This function accepts a string containing a CSS selector which is then used to match a set of elements.
+ ///
2: $(html) - Create DOM elements on-the-fly from the provided String of raw HTML.
+ ///
3: $(elements) - Wrap jQuery functionality around a single or multiple DOM Element(s).
+ ///
4: $(callback) - A shorthand for $(document).ready().
+ ///
5: $() - As of jQuery 1.4, if you pass no arguments in to the jQuery() method, an empty jQuery set will be returned.
+ ///
+ ///
+ /// 1: expression - An expression to search with.
+ ///
2: html - A string of HTML to create on the fly.
+ ///
3: elements - DOM element(s) to be encapsulated by a jQuery object.
+ ///
4: callback - The function to execute when the DOM is ready.
+ ///
+ ///
+ /// 1: context - A DOM Element, Document or jQuery to use as context.
+ ///
+ ///
+
+ // The jQuery object is actually just the init constructor 'enhanced'
+ return new jQuery.fn.init(selector, context);
+ },
+
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+
+ // Map over the $ in case of overwrite
+ _$ = window.$,
+
+ // A central reference to the root jQuery(document)
+ rootjQuery,
+
+ // A simple way to check for HTML strings or ID strings
+ // (both of which we optimize for)
+ quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,
+
+ // Is it a simple selector
+ isSimple = /^.[^:#\[\.,]*$/,
+
+ // Check if a string has a non-whitespace character in it
+ rnotwhite = /\S/,
+ rwhite = /\s/,
+
+ // Used for trimming whitespace
+ trimLeft = /^\s+/,
+ trimRight = /\s+$/,
+
+ // Check for non-word characters
+ rnonword = /\W/,
+
+ // Check for digits
+ rdigit = /\d/,
+
+ // Match a standalone tag
+ rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
+
+ // JSON RegExp
+ rvalidchars = /^[\],:{}\s]*$/,
+ rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
+ rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
+ rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
+
+ // Useragent RegExp
+ rwebkit = /(webkit)[ \/]([\w.]+)/,
+ ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
+ rmsie = /(msie) ([\w.]+)/,
+ rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
+
+ // Keep a UserAgent string for use with jQuery.browser
+ userAgent = navigator.userAgent,
+
+ // For matching the engine and version of the browser
+ browserMatch,
+
+ // Has the ready events already been bound?
+ readyBound = false,
+
+ // The functions to execute on DOM ready
+ readyList = [],
+
+ // The ready event handler
+ DOMContentLoaded,
+
+ // Save a reference to some core methods
+ toString = Object.prototype.toString,
+ hasOwn = Object.prototype.hasOwnProperty,
+ push = Array.prototype.push,
+ slice = Array.prototype.slice,
+ trim = String.prototype.trim,
+ indexOf = Array.prototype.indexOf,
+
+ // [[Class]] -> type pairs
+ class2type = {};
+
+ jQuery.fn = jQuery.prototype = {
+ init: function (selector, context) {
+ var match, elem, ret, doc;
+
+ // Handle $(""), $(null), or $(undefined)
+ if (!selector) {
+ return this;
+ }
+
+ // Handle $(DOMElement)
+ if (selector.nodeType) {
+ this.context = this[0] = selector;
+ this.length = 1;
+ return this;
+ }
+
+ // The body element only exists once, optimize finding it
+ if (selector === "body" && !context && document.body) {
+ this.context = document;
+ this[0] = document.body;
+ this.selector = "body";
+ this.length = 1;
+ return this;
+ }
+
+ // Handle HTML strings
+ if (typeof selector === "string") {
+ // Are we dealing with HTML string or an ID?
+ match = quickExpr.exec(selector);
+
+ // Verify a match, and that no context was specified for #id
+ if (match && (match[1] || !context)) {
+
+ // HANDLE: $(html) -> $(array)
+ if (match[1]) {
+ doc = (context ? context.ownerDocument || context : document);
+
+ // If a single string is passed in and it's a single tag
+ // just do a createElement and skip the rest
+ ret = rsingleTag.exec(selector);
+
+ if (ret) {
+ if (jQuery.isPlainObject(context)) {
+ selector = [document.createElement(ret[1])];
+ jQuery.fn.attr.call(selector, context, true);
+
+ } else {
+ selector = [doc.createElement(ret[1])];
+ }
+
+ } else {
+ ret = jQuery.buildFragment([match[1]], [doc]);
+ selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes;
+ }
+
+ return jQuery.merge(this, selector);
+
+ // HANDLE: $("#id")
+ } else {
+ elem = document.getElementById(match[2]);
+
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ if (elem && elem.parentNode) {
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if (elem.id !== match[2]) {
+ return rootjQuery.find(selector);
+ }
+
+ // Otherwise, we inject the element directly into the jQuery object
+ this.length = 1;
+ this[0] = elem;
+ }
+
+ this.context = document;
+ this.selector = selector;
+ return this;
+ }
+
+ // HANDLE: $("TAG")
+ } else if (!context && !rnonword.test(selector)) {
+ this.selector = selector;
+ this.context = document;
+ selector = document.getElementsByTagName(selector);
+ return jQuery.merge(this, selector);
+
+ // HANDLE: $(expr, $(...))
+ } else if (!context || context.jquery) {
+ return (context || rootjQuery).find(selector);
+
+ // HANDLE: $(expr, context)
+ // (which is just equivalent to: $(context).find(expr)
+ } else {
+ return jQuery(context).find(selector);
+ }
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if (jQuery.isFunction(selector)) {
+ return rootjQuery.ready(selector);
+ }
+
+ if (selector.selector !== undefined) {
+ this.selector = selector.selector;
+ this.context = selector.context;
+ }
+
+ return jQuery.makeArray(selector, this);
+ },
+
+ // Start with an empty selector
+ selector: "",
+
+ // The current version of jQuery being used
+ jquery: "1.4.4",
+
+ // The default length of a jQuery object is 0
+ length: 0,
+
+ // The number of elements contained in the matched element set
+ size: function () {
+ ///
+ ///
The number of elements currently matched.
+ ///
Part of Core
+ ///
+ ///
+
+ return this.length;
+ },
+
+ toArray: function () {
+ ///
+ ///
Retrieve all the DOM elements contained in the jQuery set, as an array.
+ ///
+ ///
+ return slice.call(this, 0);
+ },
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function (num) {
+ ///
+ ///
Access a single matched element. num is used to access the
+ ///
Nth element matched.
+ ///
Part of Core
+ ///
+ ///
+ ///
+ ///
Access the element in the Nth position.
+ ///
+
+ return num == null ?
+
+ // Return a 'clean' array
+ this.toArray() :
+
+ // Return just the object
+ (num < 0 ? this.slice(num)[0] : this[num]);
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function (elems, name, selector) {
+ ///
+ ///
Set the jQuery object to an array of elements, while maintaining
+ ///
the stack.
+ ///
Part of Core
+ ///
+ ///
+ ///
+ ///
An array of elements
+ ///
+
+ // Build a new jQuery matched element set
+ var ret = jQuery();
+
+ if (jQuery.isArray(elems)) {
+ push.apply(ret, elems);
+
+ } else {
+ jQuery.merge(ret, elems);
+ }
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+
+ ret.context = this.context;
+
+ if (name === "find") {
+ ret.selector = this.selector + (this.selector ? " " : "") + selector;
+ } else if (name) {
+ ret.selector = this.selector + "." + name + "(" + selector + ")";
+ }
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Execute a callback for every element in the matched set.
+ // (You can seed the arguments with an array of args, but this is
+ // only used internally.)
+ each: function (callback, args) {
+ ///
+ ///
Execute a function within the context of every matched element.
+ ///
This means that every time the passed-in function is executed
+ ///
(which is once for every element matched) the 'this' keyword
+ ///
points to the specific element.
+ ///
Additionally, the function, when executed, is passed a single
+ ///
argument representing the position of the element in the matched
+ ///
set.
+ ///
Part of Core
+ ///
+ ///
+ ///
+ ///
A function to execute
+ ///
+
+ return jQuery.each(this, callback, args);
+ },
+
+ ready: function (fn) {
+ ///
+ ///
Binds a function to be executed whenever the DOM is ready to be traversed and manipulated.
+ ///
+ /// The function to be executed when the DOM is ready.
+
+ // Attach the listeners
+ jQuery.bindReady();
+
+ // If the DOM is already ready
+ if (jQuery.isReady) {
+ // Execute the function immediately
+ fn.call(document, jQuery);
+
+ // Otherwise, remember the function for later
+ } else if (readyList) {
+ // Add the function to the wait list
+ readyList.push(fn);
+ }
+
+ return this;
+ },
+
+ eq: function (i) {
+ ///
+ ///
Reduce the set of matched elements to a single element.
+ ///
The position of the element in the set of matched elements
+ ///
starts at 0 and goes to length - 1.
+ ///
Part of Core
+ ///
+ ///
+ ///
+ ///
pos The index of the element that you wish to limit to.
+ ///
+
+ return i === -1 ?
+ this.slice(i) :
+ this.slice(i, +i + 1);
+ },
+
+ first: function () {
+ ///
+ ///
Reduce the set of matched elements to the first in the set.
+ ///
+ ///
+
+ return this.eq(0);
+ },
+
+ last: function () {
+ ///
+ ///
Reduce the set of matched elements to the final one in the set.
+ ///
+ ///
+
+ return this.eq(-1);
+ },
+
+ slice: function () {
+ ///
+ ///
Selects a subset of the matched elements. Behaves exactly like the built-in Array slice method.
+ ///
+ /// Where to start the subset (0-based).
+ /// Where to end the subset (not including the end element itself).
+ ///
If omitted, ends at the end of the selection
+ /// The sliced elements
+
+ return this.pushStack(slice.apply(this, arguments),
+ "slice", slice.call(arguments).join(","));
+ },
+
+ map: function (callback) {
+ ///
+ ///
This member is internal.
+ ///
+ ///
+ ///
+
+ return this.pushStack(jQuery.map(this, function (elem, i) {
+ return callback.call(elem, i, elem);
+ }));
+ },
+
+ end: function () {
+ ///
+ ///
End the most recent 'destructive' operation, reverting the list of matched elements
+ ///
back to its previous state. After an end operation, the list of matched elements will
+ ///
revert to the last state of matched elements.
+ ///
If there was no destructive operation before, an empty set is returned.
+ ///
Part of DOM/Traversing
+ ///
+ ///
+
+ return this.prevObject || jQuery(null);
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: push,
+ sort: [].sort,
+ splice: [].splice
+ };
+
+ // Give the init function the jQuery prototype for later instantiation
+ jQuery.fn.init.prototype = jQuery.fn;
+
+ jQuery.extend = jQuery.fn.extend = function () {
+ ///
+ ///
Extend one object with one or more others, returning the original,
+ ///
modified, object. This is a great utility for simple inheritance.
+ ///
jQuery.extend(settings, options);
+ ///
var settings = jQuery.extend({}, defaults, options);
+ ///
Part of JavaScript
+ ///
+ ///
+ ///
The object to extend
+ ///
+ ///
+ ///
The object that will be merged into the first.
+ ///
+ ///
+ ///
(optional) More objects to merge into the first
+ ///
+ ///
+
+ var options, name, src, copy, copyIsArray, clone,
+ target = arguments[0] || {},
+ i = 1,
+ length = arguments.length,
+ deep = false;
+
+ // Handle a deep copy situation
+ if (typeof target === "boolean") {
+ deep = target;
+ target = arguments[1] || {};
+ // skip the boolean and the target
+ i = 2;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if (typeof target !== "object" && !jQuery.isFunction(target)) {
+ target = {};
+ }
+
+ // extend jQuery itself if only one argument is passed
+ if (length === i) {
+ target = this;
+ --i;
+ }
+
+ for (; i < length; i++) {
+ // Only deal with non-null/undefined values
+ if ((options = arguments[i]) != null) {
+ // Extend the base object
+ for (name in options) {
+ src = target[name];
+ copy = options[name];
+
+ // Prevent never-ending loop
+ if (target === copy) {
+ continue;
+ }
+
+ // Recurse if we're merging plain objects or arrays
+ if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)))) {
+ if (copyIsArray) {
+ copyIsArray = false;
+ clone = src && jQuery.isArray(src) ? src : [];
+
+ } else {
+ clone = src && jQuery.isPlainObject(src) ? src : {};
+ }
+
+ // Never move original objects, clone them
+ target[name] = jQuery.extend(deep, clone, copy);
+
+ // Don't bring in undefined values
+ } else if (copy !== undefined) {
+ target[name] = copy;
+ }
+ }
+ }
+ }
+
+ // Return the modified object
+ return target;
+ };
+
+ jQuery.extend({
+ noConflict: function (deep) {
+ ///
+ ///
Run this function to give control of the $ variable back
+ ///
to whichever library first implemented it. This helps to make
+ ///
sure that jQuery doesn't conflict with the $ object
+ ///
of other libraries.
+ ///
By using this function, you will only be able to access jQuery
+ ///
using the 'jQuery' variable. For example, where you used to do
+ ///
$("div p"), you now must do jQuery("div p").
+ ///
Part of Core
+ ///
+ ///
+
+ window.$ = _$;
+
+ if (deep) {
+ window.jQuery = _jQuery;
+ }
+
+ return jQuery;
+ },
+
+ // Is the DOM ready to be used? Set to true once it occurs.
+ isReady: false,
+
+ // A counter to track how many items to wait for before
+ // the ready event fires. See #6781
+ readyWait: 1,
+
+ // Handle when the DOM is ready
+ ready: function (wait) {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ // A third-party is pushing the ready event forwards
+ if (wait === true) {
+ jQuery.readyWait--;
+ }
+
+ // Make sure that the DOM is not already loaded
+ if (!jQuery.readyWait || (wait !== true && !jQuery.isReady)) {
+ // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+ if (!document.body) {
+ return setTimeout(jQuery.ready, 1);
+ }
+
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If a normal DOM Ready event fired, decrement, and wait if need be
+ if (wait !== true && --jQuery.readyWait > 0) {
+ return;
+ }
+
+ // If there are functions bound, to execute
+ if (readyList) {
+ // Execute all of them
+ var fn,
+ i = 0,
+ ready = readyList;
+
+ // Reset the list of functions
+ readyList = null;
+
+ while ((fn = ready[i++])) {
+ fn.call(document, jQuery);
+ }
+
+ // Trigger any bound ready events
+ if (jQuery.fn.trigger) {
+ jQuery(document).trigger("ready").unbind("ready");
+ }
+ }
+ }
+ },
+
+ bindReady: function () {
+ if (readyBound) {
+ return;
+ }
+
+ readyBound = true;
+
+ // Catch cases where $(document).ready() is called after the
+ // browser event has already occurred.
+ if (document.readyState === "complete") {
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
+ return setTimeout(jQuery.ready, 1);
+ }
+
+ // Mozilla, Opera and webkit nightlies currently support this event
+ if (document.addEventListener) {
+ // Use the handy event callback
+ document.addEventListener("DOMContentLoaded", DOMContentLoaded, false);
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener("load", jQuery.ready, false);
+
+ // If IE event model is used
+ } else if (document.attachEvent) {
+ // ensure firing before onload,
+ // maybe late but safe also for iframes
+ document.attachEvent("onreadystatechange", DOMContentLoaded);
+
+ // A fallback to window.onload, that will always work
+ window.attachEvent("onload", jQuery.ready);
+
+ // If IE and not a frame
+ // continually check to see if the document is ready
+ var toplevel = false;
+
+ try {
+ toplevel = window.frameElement == null;
+ } catch (e) { }
+
+ if (document.documentElement.doScroll && toplevel) {
+ doScrollCheck();
+ }
+ }
+ },
+
+ // See test/unit/core.js for details concerning isFunction.
+ // Since version 1.3, DOM methods and functions like alert
+ // aren't supported. They return false on IE (#2968).
+ isFunction: function (obj) {
+ ///
+ ///
Determines if the parameter passed is a function.
+ ///
+ /// The object to check
+ /// True if the parameter is a function; otherwise false.
+
+ return jQuery.type(obj) === "function";
+ },
+
+ isArray: Array.isArray || function (obj) {
+ ///
+ ///
Determine if the parameter passed is an array.
+ ///
+ /// Object to test whether or not it is an array.
+ /// True if the parameter is a function; otherwise false.
+
+ return jQuery.type(obj) === "array";
+ },
+
+ // A crude way of determining if an object is a window
+ isWindow: function (obj) {
+ return obj && typeof obj === "object" && "setInterval" in obj;
+ },
+
+ isNaN: function (obj) {
+ return obj == null || !rdigit.test(obj) || isNaN(obj);
+ },
+
+ type: function (obj) {
+ return obj == null ?
+ String(obj) :
+ class2type[toString.call(obj)] || "object";
+ },
+
+ isPlainObject: function (obj) {
+ ///
+ ///
Check to see if an object is a plain object (created using "{}" or "new Object").
+ ///
+ ///
+ ///
The object that will be checked to see if it's a plain object.
+ ///
+ ///
+
+ // Must be an Object.
+ // Because of IE, we also have to check the presence of the constructor property.
+ // Make sure that DOM nodes and window objects don't pass through, as well
+ if (!obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow(obj)) {
+ return false;
+ }
+
+ // Not own constructor property must be Object
+ if (obj.constructor &&
+ !hasOwn.call(obj, "constructor") &&
+ !hasOwn.call(obj.constructor.prototype, "isPrototypeOf")) {
+ return false;
+ }
+
+ // Own properties are enumerated firstly, so to speed up,
+ // if last one is own, then all properties are own.
+
+ var key;
+ for (key in obj) { }
+
+ return key === undefined || hasOwn.call(obj, key);
+ },
+
+ isEmptyObject: function (obj) {
+ ///
+ ///
Check to see if an object is empty (contains no properties).
+ ///
+ ///
+ ///
The object that will be checked to see if it's empty.
+ ///
+ ///
+
+ for (var name in obj) {
+ return false;
+ }
+ return true;
+ },
+
+ error: function (msg) {
+ throw msg;
+ },
+
+ parseJSON: function (data) {
+ if (typeof data !== "string" || !data) {
+ return null;
+ }
+
+ // Make sure leading/trailing whitespace is removed (IE can't handle it)
+ data = jQuery.trim(data);
+
+ // Make sure the incoming data is actual JSON
+ // Logic borrowed from http://json.org/json2.js
+ if (rvalidchars.test(data.replace(rvalidescape, "@")
+ .replace(rvalidtokens, "]")
+ .replace(rvalidbraces, ""))) {
+
+ // Try to use the native JSON parser first
+ return window.JSON && window.JSON.parse ?
+ window.JSON.parse(data) :
+ (new Function("return " + data))();
+
+ } else {
+ jQuery.error("Invalid JSON: " + data);
+ }
+ },
+
+ noop: function () {
+ ///
+ ///
An empty function.
+ ///
+ ///
+ },
+
+ // Evalulates a script in a global context
+ globalEval: function (data) {
+ ///
+ ///
Internally evaluates a script in a global context.
+ ///
+ ///
+
+ if (data && rnotwhite.test(data)) {
+ // Inspired by code by Andrea Giammarchi
+ // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
+ var head = document.getElementsByTagName("head")[0] || document.documentElement,
+ script = document.createElement("script");
+
+ script.type = "text/javascript";
+
+ if (jQuery.support.scriptEval) {
+ script.appendChild(document.createTextNode(data));
+ } else {
+ script.text = data;
+ }
+
+ // Use insertBefore instead of appendChild to circumvent an IE6 bug.
+ // This arises when a base node is used (#2709).
+ head.insertBefore(script, head.firstChild);
+ head.removeChild(script);
+ }
+ },
+
+ nodeName: function (elem, name) {
+ ///
+ ///
Checks whether the specified element has the specified DOM node name.
+ ///
+ /// The element to examine
+ /// The node name to check
+ /// True if the specified node name matches the node's DOM node name; otherwise false
+
+ return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
+ },
+
+ // args is for internal usage only
+ each: function (object, callback, args) {
+ ///
+ ///
A generic iterator function, which can be used to seemlessly
+ ///
iterate over both objects and arrays. This function is not the same
+ ///
as $().each() - which is used to iterate, exclusively, over a jQuery
+ ///
object. This function can be used to iterate over anything.
+ ///
The callback has two arguments:the key (objects) or index (arrays) as first
+ ///
the first, and the value as the second.
+ ///
Part of JavaScript
+ ///
+ ///
+ ///
The object, or array, to iterate over.
+ ///
+ ///
+ ///
The function that will be executed on every object.
+ ///
+ ///
+
+ var name, i = 0,
+ length = object.length,
+ isObj = length === undefined || jQuery.isFunction(object);
+
+ if (args) {
+ if (isObj) {
+ for (name in object) {
+ if (callback.apply(object[name], args) === false) {
+ break;
+ }
+ }
+ } else {
+ for (; i < length; ) {
+ if (callback.apply(object[i++], args) === false) {
+ break;
+ }
+ }
+ }
+
+ // A special, fast, case for the most common use of each
+ } else {
+ if (isObj) {
+ for (name in object) {
+ if (callback.call(object[name], name, object[name]) === false) {
+ break;
+ }
+ }
+ } else {
+ for (var value = object[0];
+ i < length && callback.call(value, i, value) !== false; value = object[++i]) { }
+ }
+ }
+
+ return object;
+ },
+
+ // Use native String.trim function wherever possible
+ trim: trim ?
+ function (text) {
+ return text == null ?
+ "" :
+ trim.call(text);
+ } :
+
+ // Otherwise use our own trimming functionality
+ function (text) {
+ return text == null ?
+ "" :
+ text.toString().replace(trimLeft, "").replace(trimRight, "");
+ },
+
+ // results is for internal usage only
+ makeArray: function (array, results) {
+ ///
+ ///
Turns anything into a true array. This is an internal method.
+ ///
+ /// Anything to turn into an actual Array
+ ///
+ ///
+
+ var ret = results || [];
+
+ if (array != null) {
+ // The window, strings (and functions) also have 'length'
+ // The extra typeof function check is to prevent crashes
+ // in Safari 2 (See: #3039)
+ // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
+ var type = jQuery.type(array);
+
+ if (array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow(array)) {
+ push.call(ret, array);
+ } else {
+ jQuery.merge(ret, array);
+ }
+ }
+
+ return ret;
+ },
+
+ inArray: function (elem, array) {
+ if (array.indexOf) {
+ return array.indexOf(elem);
+ }
+
+ for (var i = 0, length = array.length; i < length; i++) {
+ if (array[i] === elem) {
+ return i;
+ }
+ }
+
+ return -1;
+ },
+
+ merge: function (first, second) {
+ ///
+ ///
Merge two arrays together, removing all duplicates.
+ ///
The new array is: All the results from the first array, followed
+ ///
by the unique results from the second array.
+ ///
Part of JavaScript
+ ///
+ ///
+ ///
+ ///
The first array to merge.
+ ///
+ ///
+ ///
The second array to merge.
+ ///
+
+ var i = first.length,
+ j = 0;
+
+ if (typeof second.length === "number") {
+ for (var l = second.length; j < l; j++) {
+ first[i++] = second[j];
+ }
+
+ } else {
+ while (second[j] !== undefined) {
+ first[i++] = second[j++];
+ }
+ }
+
+ first.length = i;
+
+ return first;
+ },
+
+ grep: function (elems, callback, inv) {
+ ///
+ ///
Filter items out of an array, by using a filter function.
+ ///
The specified function will be passed two arguments: The
+ ///
current array item and the index of the item in the array. The
+ ///
function must return 'true' to keep the item in the array,
+ ///
false to remove it.
+ ///
});
+ ///
Part of JavaScript
+ ///
+ ///
+ ///
+ ///
array The Array to find items in.
+ ///
+ ///
+ ///
The function to process each item against.
+ ///
+ ///
+ ///
Invert the selection - select the opposite of the function.
+ ///
+
+ var ret = [], retVal;
+ inv = !!inv;
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for (var i = 0, length = elems.length; i < length; i++) {
+ retVal = !!callback(elems[i], i);
+ if (inv !== retVal) {
+ ret.push(elems[i]);
+ }
+ }
+
+ return ret;
+ },
+
+ // arg is for internal usage only
+ map: function (elems, callback, arg) {
+ ///
+ ///
Translate all items in an array to another array of items.
+ ///
The translation function that is provided to this method is
+ ///
called for each item in the array and is passed one argument:
+ ///
The item to be translated.
+ ///
The function can then return the translated value, 'null'
+ ///
(to remove the item), or an array of values - which will
+ ///
be flattened into the full array.
+ ///
Part of JavaScript
+ ///
+ ///
+ ///
+ ///
array The Array to translate.
+ ///
+ ///
+ ///
The function to process each item against.
+ ///
+
+ var ret = [], value;
+
+ // Go through the array, translating each of the items to their
+ // new value (or values).
+ for (var i = 0, length = elems.length; i < length; i++) {
+ value = callback(elems[i], i, arg);
+
+ if (value != null) {
+ ret[ret.length] = value;
+ }
+ }
+
+ return ret.concat.apply([], ret);
+ },
+
+ // A global GUID counter for objects
+ guid: 1,
+
+ proxy: function (fn, proxy, thisObject) {
+ ///
+ ///
Takes a function and returns a new one that will always have a particular scope.
+ ///
+ ///
+ ///
The function whose scope will be changed.
+ ///
+ ///
+ ///
The object to which the scope of the function should be set.
+ ///
+ ///
+
+ if (arguments.length === 2) {
+ if (typeof proxy === "string") {
+ thisObject = fn;
+ fn = thisObject[proxy];
+ proxy = undefined;
+
+ } else if (proxy && !jQuery.isFunction(proxy)) {
+ thisObject = proxy;
+ proxy = undefined;
+ }
+ }
+
+ if (!proxy && fn) {
+ proxy = function () {
+ return fn.apply(thisObject || this, arguments);
+ };
+ }
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ if (fn) {
+ proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
+ }
+
+ // So proxy can be declared as an argument
+ return proxy;
+ },
+
+ // Mutifunctional method to get and set values to a collection
+ // The value/s can be optionally by executed if its a function
+ access: function (elems, key, value, exec, fn, pass) {
+ var length = elems.length;
+
+ // Setting many attributes
+ if (typeof key === "object") {
+ for (var k in key) {
+ jQuery.access(elems, k, key[k], exec, fn, value);
+ }
+ return elems;
+ }
+
+ // Setting one attribute
+ if (value !== undefined) {
+ // Optionally, function values get executed if exec is true
+ exec = !pass && exec && jQuery.isFunction(value);
+
+ for (var i = 0; i < length; i++) {
+ fn(elems[i], key, exec ? value.call(elems[i], i, fn(elems[i], key)) : value, pass);
+ }
+
+ return elems;
+ }
+
+ // Getting an attribute
+ return length ? fn(elems[0], key) : undefined;
+ },
+
+ now: function () {
+ return (new Date()).getTime();
+ },
+
+ // Use of jQuery.browser is frowned upon.
+ // More details: http://docs.jquery.com/Utilities/jQuery.browser
+ uaMatch: function (ua) {
+ ua = ua.toLowerCase();
+
+ var match = rwebkit.exec(ua) ||
+ ropera.exec(ua) ||
+ rmsie.exec(ua) ||
+ ua.indexOf("compatible") < 0 && rmozilla.exec(ua) ||
+ [];
+
+ return { browser: match[1] || "", version: match[2] || "0" };
+ },
+
+ browser: {}
+ });
+
+ // Populate the class2type map
+ jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function (i, name) {
+ class2type["[object " + name + "]"] = name.toLowerCase();
+ });
+
+ browserMatch = jQuery.uaMatch(userAgent);
+ if (browserMatch.browser) {
+ jQuery.browser[browserMatch.browser] = true;
+ jQuery.browser.version = browserMatch.version;
+ }
+
+ // Deprecated, use jQuery.browser.webkit instead
+ if (jQuery.browser.webkit) {
+ jQuery.browser.safari = true;
+ }
+
+ if (indexOf) {
+ jQuery.inArray = function (elem, array) {
+ ///
+ ///
Determines the index of the first parameter in the array.
+ ///
+ /// The value to see if it exists in the array.
+ /// The array to look through for the value
+ /// The 0-based index of the item if it was found, otherwise -1.
+
+ return indexOf.call(array, elem);
+ };
+ }
+
+ // Verify that \s matches non-breaking spaces
+ // (IE fails on this test)
+ if (!rwhite.test("\xA0")) {
+ trimLeft = /^[\s\xA0]+/;
+ trimRight = /[\s\xA0]+$/;
+ }
+
+ // All jQuery objects should point back to these
+ rootjQuery = jQuery(document);
+
+ // Cleanup functions for the document ready method
+ if (document.addEventListener) {
+ DOMContentLoaded = function () {
+ document.removeEventListener("DOMContentLoaded", DOMContentLoaded, false);
+ jQuery.ready();
+ };
+
+ } else if (document.attachEvent) {
+ DOMContentLoaded = function () {
+ // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+ if (document.readyState === "complete") {
+ document.detachEvent("onreadystatechange", DOMContentLoaded);
+ jQuery.ready();
+ }
+ };
+ }
+
+ // The DOM ready check for Internet Explorer
+ function doScrollCheck() {
+ if (jQuery.isReady) {
+ return;
+ }
+
+ try {
+ // If IE is used, use the trick by Diego Perini
+ // http://javascript.nwbox.com/IEContentLoaded/
+ document.documentElement.doScroll("left");
+ } catch (e) {
+ setTimeout(doScrollCheck, 1);
+ return;
+ }
+
+ // and execute any waiting functions
+ jQuery.ready();
+ }
+
+ // Expose jQuery to the global object
+ return (window.jQuery = window.$ = jQuery);
+
+ })();
+
+
+
+ // [vsdoc] The following function has been modified for IntelliSense.
+ // [vsdoc] Stubbing support properties to "false" for IntelliSense compat.
+ (function () {
+
+ jQuery.support = {};
+
+ // var root = document.documentElement,
+ // script = document.createElement("script"),
+ // div = document.createElement("div"),
+ // id = "script" + jQuery.now();
+
+ // div.style.display = "none";
+ // div.innerHTML = "
a";
+
+ // var all = div.getElementsByTagName("*"),
+ // a = div.getElementsByTagName("a")[0],
+ // select = document.createElement("select"),
+ // opt = select.appendChild( document.createElement("option") );
+
+ // // Can't get basic test support
+ // if ( !all || !all.length || !a ) {
+ // return;
+ // }
+
+ jQuery.support = {
+ // IE strips leading whitespace when .innerHTML is used
+ leadingWhitespace: false,
+
+ // Make sure that tbody elements aren't automatically inserted
+ // IE will insert them into empty tables
+ tbody: false,
+
+ // Make sure that link elements get serialized correctly by innerHTML
+ // This requires a wrapper element in IE
+ htmlSerialize: false,
+
+ // Get the style information from getAttribute
+ // (IE uses .cssText insted)
+ style: false,
+
+ // Make sure that URLs aren't manipulated
+ // (IE normalizes it by default)
+ hrefNormalized: false,
+
+ // Make sure that element opacity exists
+ // (IE uses filter instead)
+ // Use a regex to work around a WebKit issue. See #5145
+ opacity: false,
+
+ // Verify style float existence
+ // (IE uses styleFloat instead of cssFloat)
+ cssFloat: false,
+
+ // Make sure that if no value is specified for a checkbox
+ // that it defaults to "on".
+ // (WebKit defaults to "" instead)
+ checkOn: false,
+
+ // Make sure that a selected-by-default option has a working selected property.
+ // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
+ optSelected: false,
+
+ // Will be defined later
+ deleteExpando: false,
+ optDisabled: false,
+ checkClone: false,
+ scriptEval: false,
+ noCloneEvent: false,
+ boxModel: false,
+ inlineBlockNeedsLayout: false,
+ shrinkWrapBlocks: false,
+ reliableHiddenOffsets: true
+ };
+
+ // // Make sure that the options inside disabled selects aren't marked as disabled
+ // // (WebKit marks them as diabled)
+ // select.disabled = true;
+ // jQuery.support.optDisabled = !opt.disabled;
+
+ // script.type = "text/javascript";
+ // try {
+ // script.appendChild( document.createTextNode( "window." + id + "=1;" ) );
+ // } catch(e) {}
+
+ // root.insertBefore( script, root.firstChild );
+
+ // // Make sure that the execution of code works by injecting a script
+ // // tag with appendChild/createTextNode
+ // // (IE doesn't support this, fails, and uses .text instead)
+ // if ( window[ id ] ) {
+ // jQuery.support.scriptEval = true;
+ // delete window[ id ];
+ // }
+
+ // // Test to see if it's possible to delete an expando from an element
+ // // Fails in Internet Explorer
+ // try {
+ // delete script.test;
+
+ // } catch(e) {
+ // jQuery.support.deleteExpando = false;
+ // }
+
+ // root.removeChild( script );
+
+ // if ( div.attachEvent && div.fireEvent ) {
+ // div.attachEvent("onclick", function click() {
+ // // Cloning a node shouldn't copy over any
+ // // bound event handlers (IE does this)
+ // jQuery.support.noCloneEvent = false;
+ // div.detachEvent("onclick", click);
+ // });
+ // div.cloneNode(true).fireEvent("onclick");
+ // }
+
+ // div = document.createElement("div");
+ // div.innerHTML = "";
+
+ // var fragment = document.createDocumentFragment();
+ // fragment.appendChild( div.firstChild );
+
+ // // WebKit doesn't clone checked state correctly in fragments
+ // jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked;
+
+ // // Figure out if the W3C box model works as expected
+ // // document.body must exist before we can do this
+ // jQuery(function() {
+ // var div = document.createElement("div");
+ // div.style.width = div.style.paddingLeft = "1px";
+
+ // document.body.appendChild( div );
+ // jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2;
+
+ // if ( "zoom" in div.style ) {
+ // // Check if natively block-level elements act like inline-block
+ // // elements when setting their display to 'inline' and giving
+ // // them layout
+ // // (IE < 8 does this)
+ // div.style.display = "inline";
+ // div.style.zoom = 1;
+ // jQuery.support.inlineBlockNeedsLayout = div.offsetWidth === 2;
+
+ // // Check if elements with layout shrink-wrap their children
+ // // (IE 6 does this)
+ // div.style.display = "";
+ // div.innerHTML = "";
+ // jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2;
+ // }
+
+ // div.innerHTML = "
t
";
+ // var tds = div.getElementsByTagName("td");
+
+ // // Check if table cells still have offsetWidth/Height when they are set
+ // // to display:none and there are still other visible table cells in a
+ // // table row; if so, offsetWidth/Height are not reliable for use when
+ // // determining if an element has been hidden directly using
+ // // display:none (it is still safe to use offsets if a parent element is
+ // // hidden; don safety goggles and see bug #4512 for more information).
+ // // (only IE 8 fails this test)
+ // jQuery.support.reliableHiddenOffsets = tds[0].offsetHeight === 0;
+
+ // tds[0].style.display = "";
+ // tds[1].style.display = "none";
+
+ // // Check if empty table cells still have offsetWidth/Height
+ // // (IE < 8 fail this test)
+ // jQuery.support.reliableHiddenOffsets = jQuery.support.reliableHiddenOffsets && tds[0].offsetHeight === 0;
+ // div.innerHTML = "";
+
+ // document.body.removeChild( div ).style.display = "none";
+ // div = tds = null;
+ // });
+
+ // // Technique from Juriy Zaytsev
+ // // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
+ // var eventSupported = function( eventName ) {
+ // var el = document.createElement("div");
+ // eventName = "on" + eventName;
+
+ // var isSupported = (eventName in el);
+ // if ( !isSupported ) {
+ // el.setAttribute(eventName, "return;");
+ // isSupported = typeof el[eventName] === "function";
+ // }
+ // el = null;
+
+ // return isSupported;
+ // };
+
+ jQuery.support.submitBubbles = false;
+ jQuery.support.changeBubbles = false;
+
+ // // release memory in IE
+ // root = script = div = all = a = null;
+ })();
+
+
+
+ var windowData = {},
+ rbrace = /^(?:\{.*\}|\[.*\])$/;
+
+ jQuery.extend({
+ cache: {},
+
+ // Please use with caution
+ uuid: 0,
+
+ // Unique for each copy of jQuery on the page
+ expando: "jQuery" + jQuery.now(),
+
+ // The following elements throw uncatchable exceptions if you
+ // attempt to add expando properties to them.
+ noData: {
+ "embed": true,
+ // Ban all objects except for Flash (which handle expandos)
+ "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
+ "applet": true
+ },
+
+ data: function (elem, name, data) {
+ ///
+ ///
Store arbitrary data associated with the specified element.
+ ///
+ ///
+ ///
The DOM element to associate with the data.
+ ///
+ ///
+ ///
A string naming the piece of data to set.
+ ///
+ ///
+ ///
The new data value.
+ ///
+ ///
+
+ if (!jQuery.acceptData(elem)) {
+ return;
+ }
+
+ elem = elem == window ?
+ windowData :
+ elem;
+
+ var isNode = elem.nodeType,
+ id = isNode ? elem[jQuery.expando] : null,
+ cache = jQuery.cache, thisCache;
+
+ if (isNode && !id && typeof name === "string" && data === undefined) {
+ return;
+ }
+
+ // Get the data from the object directly
+ if (!isNode) {
+ cache = elem;
+
+ // Compute a unique ID for the element
+ } else if (!id) {
+ elem[jQuery.expando] = id = ++jQuery.uuid;
+ }
+
+ // Avoid generating a new cache unless none exists and we
+ // want to manipulate it.
+ if (typeof name === "object") {
+ if (isNode) {
+ cache[id] = jQuery.extend(cache[id], name);
+
+ } else {
+ jQuery.extend(cache, name);
+ }
+
+ } else if (isNode && !cache[id]) {
+ cache[id] = {};
+ }
+
+ thisCache = isNode ? cache[id] : cache;
+
+ // Prevent overriding the named cache with undefined values
+ if (data !== undefined) {
+ thisCache[name] = data;
+ }
+
+ return typeof name === "string" ? thisCache[name] : thisCache;
+ },
+
+ removeData: function (elem, name) {
+ if (!jQuery.acceptData(elem)) {
+ return;
+ }
+
+ elem = elem == window ?
+ windowData :
+ elem;
+
+ var isNode = elem.nodeType,
+ id = isNode ? elem[jQuery.expando] : elem,
+ cache = jQuery.cache,
+ thisCache = isNode ? cache[id] : id;
+
+ // If we want to remove a specific section of the element's data
+ if (name) {
+ if (thisCache) {
+ // Remove the section of cache data
+ delete thisCache[name];
+
+ // If we've removed all the data, remove the element's cache
+ if (isNode && jQuery.isEmptyObject(thisCache)) {
+ jQuery.removeData(elem);
+ }
+ }
+
+ // Otherwise, we want to remove all of the element's data
+ } else {
+ if (isNode && jQuery.support.deleteExpando) {
+ delete elem[jQuery.expando];
+
+ } else if (elem.removeAttribute) {
+ elem.removeAttribute(jQuery.expando);
+
+ // Completely remove the data cache
+ } else if (isNode) {
+ delete cache[id];
+
+ // Remove all fields from the object
+ } else {
+ for (var n in elem) {
+ delete elem[n];
+ }
+ }
+ }
+ },
+
+ // A method for determining if a DOM node can handle the data expando
+ acceptData: function (elem) {
+ if (elem.nodeName) {
+ var match = jQuery.noData[elem.nodeName.toLowerCase()];
+
+ if (match) {
+ return !(match === true || elem.getAttribute("classid") !== match);
+ }
+ }
+
+ return true;
+ }
+ });
+
+ jQuery.fn.extend({
+ data: function (key, value) {
+ ///
+ ///
Store arbitrary data associated with the matched elements.
+ ///
+ ///
+ ///
A string naming the piece of data to set.
+ ///
+ ///
+ ///
The new data value.
+ ///
+ ///
+
+ var data = null;
+
+ if (typeof key === "undefined") {
+ if (this.length) {
+ var attr = this[0].attributes, name;
+ data = jQuery.data(this[0]);
+
+ for (var i = 0, l = attr.length; i < l; i++) {
+ name = attr[i].name;
+
+ if (name.indexOf("data-") === 0) {
+ name = name.substr(5);
+ dataAttr(this[0], name, data[name]);
+ }
+ }
+ }
+
+ return data;
+
+ } else if (typeof key === "object") {
+ return this.each(function () {
+ jQuery.data(this, key);
+ });
+ }
+
+ var parts = key.split(".");
+ parts[1] = parts[1] ? "." + parts[1] : "";
+
+ if (value === undefined) {
+ data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
+
+ // Try to fetch any internally stored data first
+ if (data === undefined && this.length) {
+ data = jQuery.data(this[0], key);
+ data = dataAttr(this[0], key, data);
+ }
+
+ return data === undefined && parts[1] ?
+ this.data(parts[0]) :
+ data;
+
+ } else {
+ return this.each(function () {
+ var $this = jQuery(this),
+ args = [parts[0], value];
+
+ $this.triggerHandler("setData" + parts[1] + "!", args);
+ jQuery.data(this, key, value);
+ $this.triggerHandler("changeData" + parts[1] + "!", args);
+ });
+ }
+ },
+
+ removeData: function (key) {
+ return this.each(function () {
+ jQuery.removeData(this, key);
+ });
+ }
+ });
+
+ function dataAttr(elem, key, data) {
+ // If nothing was found internally, try to fetch any
+ // data from the HTML5 data-* attribute
+ if (data === undefined && elem.nodeType === 1) {
+ data = elem.getAttribute("data-" + key);
+
+ if (typeof data === "string") {
+ try {
+ data = data === "true" ? true :
+ data === "false" ? false :
+ data === "null" ? null :
+ !jQuery.isNaN(data) ? parseFloat(data) :
+ rbrace.test(data) ? jQuery.parseJSON(data) :
+ data;
+ } catch (e) { }
+
+ // Make sure we set the data so it isn't changed later
+ jQuery.data(elem, key, data);
+
+ } else {
+ data = undefined;
+ }
+ }
+
+ return data;
+ }
+
+
+
+
+ jQuery.extend({
+ queue: function (elem, type, data) {
+ if (!elem) {
+ return;
+ }
+
+ type = (type || "fx") + "queue";
+ var q = jQuery.data(elem, type);
+
+ // Speed up dequeue by getting out quickly if this is just a lookup
+ if (!data) {
+ return q || [];
+ }
+
+ if (!q || jQuery.isArray(data)) {
+ q = jQuery.data(elem, type, jQuery.makeArray(data));
+
+ } else {
+ q.push(data);
+ }
+
+ return q;
+ },
+
+ dequeue: function (elem, type) {
+ type = type || "fx";
+
+ var queue = jQuery.queue(elem, type),
+ fn = queue.shift();
+
+ // If the fx queue is dequeued, always remove the progress sentinel
+ if (fn === "inprogress") {
+ fn = queue.shift();
+ }
+
+ if (fn) {
+ // Add a progress sentinel to prevent the fx queue from being
+ // automatically dequeued
+ if (type === "fx") {
+ queue.unshift("inprogress");
+ }
+
+ fn.call(elem, function () {
+ jQuery.dequeue(elem, type);
+ });
+ }
+ }
+ });
+
+ jQuery.fn.extend({
+ queue: function (type, data) {
+ ///
+ ///
1: queue() - Returns a reference to the first element's queue (which is an array of functions).
+ ///
2: queue(callback) - Adds a new function, to be executed, onto the end of the queue of all matched elements.
+ ///
3: queue(queue) - Replaces the queue of all matched element with this new queue (the array of functions).
+ ///
+ /// The function to add to the queue.
+ ///
+
+ if (typeof type !== "string") {
+ data = type;
+ type = "fx";
+ }
+
+ if (data === undefined) {
+ return jQuery.queue(this[0], type);
+ }
+ return this.each(function (i) {
+ var queue = jQuery.queue(this, type, data);
+
+ if (type === "fx" && queue[0] !== "inprogress") {
+ jQuery.dequeue(this, type);
+ }
+ });
+ },
+ dequeue: function (type) {
+ ///
+ ///
Removes a queued function from the front of the queue and executes it.
+ ///
+ /// The type of queue to access.
+ ///
+
+ return this.each(function () {
+ jQuery.dequeue(this, type);
+ });
+ },
+
+ // Based off of the plugin by Clint Helfers, with permission.
+ // http://blindsignals.com/index.php/2009/07/jquery-delay/
+ delay: function (time, type) {
+ ///
+ ///
Set a timer to delay execution of subsequent items in the queue.
+ ///
+ ///
+ ///
An integer indicating the number of milliseconds to delay execution of the next item in the queue.
+ ///
+ ///
+ ///
A string containing the name of the queue. Defaults to fx, the standard effects queue.
+ ///
+ ///
+
+ time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;
+ type = type || "fx";
+
+ return this.queue(type, function () {
+ var elem = this;
+ setTimeout(function () {
+ jQuery.dequeue(elem, type);
+ }, time);
+ });
+ },
+
+ clearQueue: function (type) {
+ ///
+ ///
Remove from the queue all items that have not yet been run.
+ ///
+ ///
+ ///
A string containing the name of the queue. Defaults to fx, the standard effects queue.
+ ///
+ ///
+
+ return this.queue(type || "fx", []);
+ }
+ });
+
+
+
+
+ var rclass = /[\n\t]/g,
+ rspaces = /\s+/,
+ rreturn = /\r/g,
+ rspecialurl = /^(?:href|src|style)$/,
+ rtype = /^(?:button|input)$/i,
+ rfocusable = /^(?:button|input|object|select|textarea)$/i,
+ rclickable = /^a(?:rea)?$/i,
+ rradiocheck = /^(?:radio|checkbox)$/i;
+
+ jQuery.props = {
+ "for": "htmlFor",
+ "class": "className",
+ readonly: "readOnly",
+ maxlength: "maxLength",
+ cellspacing: "cellSpacing",
+ rowspan: "rowSpan",
+ colspan: "colSpan",
+ tabindex: "tabIndex",
+ usemap: "useMap",
+ frameborder: "frameBorder"
+ };
+
+ jQuery.fn.extend({
+ attr: function (name, value) {
+ ///
+ ///
Set a single property to a computed value, on all matched elements.
+ ///
Instead of a value, a function is provided, that computes the value.
+ ///
Part of DOM/Attributes
+ ///
+ ///
+ ///
+ ///
The name of the property to set.
+ ///
+ ///
+ ///
A function returning the value to set.
+ ///
+
+ return jQuery.access(this, name, value, true, jQuery.attr);
+ },
+
+ removeAttr: function (name, fn) {
+ ///
+ ///
Remove an attribute from each of the matched elements.
+ ///
Part of DOM/Attributes
+ ///
+ ///
+ ///
An attribute to remove.
+ ///
+ ///
+
+ return this.each(function () {
+ jQuery.attr(this, name, "");
+ if (this.nodeType === 1) {
+ this.removeAttribute(name);
+ }
+ });
+ },
+
+ addClass: function (value) {
+ ///
+ ///
Adds the specified class(es) to each of the set of matched elements.
+ ///
Part of DOM/Attributes
+ ///
+ ///
+ ///
One or more class names to be added to the class attribute of each matched element.
+ ///
+ ///
+
+ if (jQuery.isFunction(value)) {
+ return this.each(function (i) {
+ var self = jQuery(this);
+ self.addClass(value.call(this, i, self.attr("class")));
+ });
+ }
+
+ if (value && typeof value === "string") {
+ var classNames = (value || "").split(rspaces);
+
+ for (var i = 0, l = this.length; i < l; i++) {
+ var elem = this[i];
+
+ if (elem.nodeType === 1) {
+ if (!elem.className) {
+ elem.className = value;
+
+ } else {
+ var className = " " + elem.className + " ",
+ setClass = elem.className;
+
+ for (var c = 0, cl = classNames.length; c < cl; c++) {
+ if (className.indexOf(" " + classNames[c] + " ") < 0) {
+ setClass += " " + classNames[c];
+ }
+ }
+ elem.className = jQuery.trim(setClass);
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ removeClass: function (value) {
+ ///
+ ///
Removes all or the specified class(es) from the set of matched elements.
+ ///
Part of DOM/Attributes
+ ///
+ ///
+ ///
(Optional) A class name to be removed from the class attribute of each matched element.
+ ///
+ ///
+
+ if (jQuery.isFunction(value)) {
+ return this.each(function (i) {
+ var self = jQuery(this);
+ self.removeClass(value.call(this, i, self.attr("class")));
+ });
+ }
+
+ if ((value && typeof value === "string") || value === undefined) {
+ var classNames = (value || "").split(rspaces);
+
+ for (var i = 0, l = this.length; i < l; i++) {
+ var elem = this[i];
+
+ if (elem.nodeType === 1 && elem.className) {
+ if (value) {
+ var className = (" " + elem.className + " ").replace(rclass, " ");
+ for (var c = 0, cl = classNames.length; c < cl; c++) {
+ className = className.replace(" " + classNames[c] + " ", " ");
+ }
+ elem.className = jQuery.trim(className);
+
+ } else {
+ elem.className = "";
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ toggleClass: function (value, stateVal) {
+ ///
+ ///
Add or remove a class from each element in the set of matched elements, depending
+ ///
on either the class's presence or the value of the switch argument.
+ ///
+ ///
+ ///
A class name to be toggled for each element in the matched set.
+ ///
+ ///
+ ///
A boolean value to determine whether the class should be added or removed.
+ ///
+ ///
+
+ var type = typeof value,
+ isBool = typeof stateVal === "boolean";
+
+ if (jQuery.isFunction(value)) {
+ return this.each(function (i) {
+ var self = jQuery(this);
+ self.toggleClass(value.call(this, i, self.attr("class"), stateVal), stateVal);
+ });
+ }
+
+ return this.each(function () {
+ if (type === "string") {
+ // toggle individual class names
+ var className,
+ i = 0,
+ self = jQuery(this),
+ state = stateVal,
+ classNames = value.split(rspaces);
+
+ while ((className = classNames[i++])) {
+ // check each className given, space seperated list
+ state = isBool ? state : !self.hasClass(className);
+ self[state ? "addClass" : "removeClass"](className);
+ }
+
+ } else if (type === "undefined" || type === "boolean") {
+ if (this.className) {
+ // store className if set
+ jQuery.data(this, "__className__", this.className);
+ }
+
+ // toggle whole className
+ this.className = this.className || value === false ? "" : jQuery.data(this, "__className__") || "";
+ }
+ });
+ },
+
+ hasClass: function (selector) {
+ ///
+ ///
Checks the current selection against a class and returns whether at least one selection has a given class.
+ ///
+ /// The class to check against
+ /// True if at least one element in the selection has the class, otherwise false.
+
+ var className = " " + selector + " ";
+ for (var i = 0, l = this.length; i < l; i++) {
+ if ((" " + this[i].className + " ").replace(rclass, " ").indexOf(className) > -1) {
+ return true;
+ }
+ }
+
+ return false;
+ },
+
+ val: function (value) {
+ ///
+ ///
Set the value of every matched element.
+ ///
Part of DOM/Attributes
+ ///
+ ///
+ ///
+ ///
A string of text or an array of strings to set as the value property of each
+ ///
matched element.
+ ///
+
+ if (!arguments.length) {
+ var elem = this[0];
+
+ if (elem) {
+ if (jQuery.nodeName(elem, "option")) {
+ // attributes.value is undefined in Blackberry 4.7 but
+ // uses .value. See #6932
+ var val = elem.attributes.value;
+ return !val || val.specified ? elem.value : elem.text;
+ }
+
+ // We need to handle select boxes special
+ if (jQuery.nodeName(elem, "select")) {
+ var index = elem.selectedIndex,
+ values = [],
+ options = elem.options,
+ one = elem.type === "select-one";
+
+ // Nothing was selected
+ if (index < 0) {
+ return null;
+ }
+
+ // Loop through all the selected options
+ for (var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++) {
+ var option = options[i];
+
+ // Don't return options that are disabled or in a disabled optgroup
+ if (option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
+ (!option.parentNode.disabled || !jQuery.nodeName(option.parentNode, "optgroup"))) {
+
+ // Get the specific value for the option
+ value = jQuery(option).val();
+
+ // We don't need an array for one selects
+ if (one) {
+ return value;
+ }
+
+ // Multi-Selects return an array
+ values.push(value);
+ }
+ }
+
+ return values;
+ }
+
+ // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
+ if (rradiocheck.test(elem.type) && !jQuery.support.checkOn) {
+ return elem.getAttribute("value") === null ? "on" : elem.value;
+ }
+
+
+ // Everything else, we just grab the value
+ return (elem.value || "").replace(rreturn, "");
+
+ }
+
+ return undefined;
+ }
+
+ var isFunction = jQuery.isFunction(value);
+
+ return this.each(function (i) {
+ var self = jQuery(this), val = value;
+
+ if (this.nodeType !== 1) {
+ return;
+ }
+
+ if (isFunction) {
+ val = value.call(this, i, self.val());
+ }
+
+ // Treat null/undefined as ""; convert numbers to string
+ if (val == null) {
+ val = "";
+ } else if (typeof val === "number") {
+ val += "";
+ } else if (jQuery.isArray(val)) {
+ val = jQuery.map(val, function (value) {
+ return value == null ? "" : value + "";
+ });
+ }
+
+ if (jQuery.isArray(val) && rradiocheck.test(this.type)) {
+ this.checked = jQuery.inArray(self.val(), val) >= 0;
+
+ } else if (jQuery.nodeName(this, "select")) {
+ var values = jQuery.makeArray(val);
+
+ jQuery("option", this).each(function () {
+ this.selected = jQuery.inArray(jQuery(this).val(), values) >= 0;
+ });
+
+ if (!values.length) {
+ this.selectedIndex = -1;
+ }
+
+ } else {
+ this.value = val;
+ }
+ });
+ }
+ });
+
+ jQuery.extend({
+ attrFn: {
+ val: true,
+ css: true,
+ html: true,
+ text: true,
+ data: true,
+ width: true,
+ height: true,
+ offset: true
+ },
+
+ attr: function (elem, name, value, pass) {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ // don't set attributes on text and comment nodes
+ if (!elem || elem.nodeType === 3 || elem.nodeType === 8) {
+ return undefined;
+ }
+
+ if (pass && name in jQuery.attrFn) {
+ return jQuery(elem)[name](value);
+ }
+
+ var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc(elem),
+ // Whether we are setting (or getting)
+ set = value !== undefined;
+
+ // Try to normalize/fix the name
+ name = notxml && jQuery.props[name] || name;
+
+ // These attributes require special treatment
+ var special = rspecialurl.test(name);
+
+ // Safari mis-reports the default selected property of an option
+ // Accessing the parent's selectedIndex property fixes it
+ if (name === "selected" && !jQuery.support.optSelected) {
+ var parent = elem.parentNode;
+ if (parent) {
+ parent.selectedIndex;
+
+ // Make sure that it also works with optgroups, see #5701
+ if (parent.parentNode) {
+ parent.parentNode.selectedIndex;
+ }
+ }
+ }
+
+ // If applicable, access the attribute via the DOM 0 way
+ // 'in' checks fail in Blackberry 4.7 #6931
+ if ((name in elem || elem[name] !== undefined) && notxml && !special) {
+ if (set) {
+ // We can't allow the type property to be changed (since it causes problems in IE)
+ if (name === "type" && rtype.test(elem.nodeName) && elem.parentNode) {
+ jQuery.error("type property can't be changed");
+ }
+
+ if (value === null) {
+ if (elem.nodeType === 1) {
+ elem.removeAttribute(name);
+ }
+
+ } else {
+ elem[name] = value;
+ }
+ }
+
+ // browsers index elements by id/name on forms, give priority to attributes.
+ if (jQuery.nodeName(elem, "form") && elem.getAttributeNode(name)) {
+ return elem.getAttributeNode(name).nodeValue;
+ }
+
+ // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
+ // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+ if (name === "tabIndex") {
+ var attributeNode = elem.getAttributeNode("tabIndex");
+
+ return attributeNode && attributeNode.specified ?
+ attributeNode.value :
+ rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href ?
+ 0 :
+ undefined;
+ }
+
+ return elem[name];
+ }
+
+ if (!jQuery.support.style && notxml && name === "style") {
+ if (set) {
+ elem.style.cssText = "" + value;
+ }
+
+ return elem.style.cssText;
+ }
+
+ if (set) {
+ // convert the value to a string (all browsers do this but IE) see #1070
+ elem.setAttribute(name, "" + value);
+ }
+
+ // Ensure that missing attributes return undefined
+ // Blackberry 4.7 returns "" from getAttribute #6938
+ if (!elem.attributes[name] && (elem.hasAttribute && !elem.hasAttribute(name))) {
+ return undefined;
+ }
+
+ var attr = !jQuery.support.hrefNormalized && notxml && special ?
+ // Some attributes require a special call on IE
+ elem.getAttribute(name, 2) :
+ elem.getAttribute(name);
+
+ // Non-existent attributes return null, we normalize to undefined
+ return attr === null ? undefined : attr;
+ }
+ });
+
+
+
+
+ var rnamespaces = /\.(.*)$/,
+ rformElems = /^(?:textarea|input|select)$/i,
+ rperiod = /\./g,
+ rspace = / /g,
+ rescape = /[^\w\s.|`]/g,
+ fcleanup = function (nm) {
+ return nm.replace(rescape, "\\$&");
+ },
+ focusCounts = { focusin: 0, focusout: 0 };
+
+ /*
+ * A number of helper functions used for managing events.
+ * Many of the ideas behind this code originated from
+ * Dean Edwards' addEvent library.
+ */
+ jQuery.event = {
+
+ // Bind an event to an element
+ // Original by Dean Edwards
+ add: function (elem, types, handler, data) {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ if (elem.nodeType === 3 || elem.nodeType === 8) {
+ return;
+ }
+
+ // For whatever reason, IE has trouble passing the window object
+ // around, causing it to be cloned in the process
+ if (jQuery.isWindow(elem) && (elem !== window && !elem.frameElement)) {
+ elem = window;
+ }
+
+ if (handler === false) {
+ handler = returnFalse;
+ } else if (!handler) {
+ // Fixes bug #7229. Fix recommended by jdalton
+ return;
+ }
+
+ var handleObjIn, handleObj;
+
+ if (handler.handler) {
+ handleObjIn = handler;
+ handler = handleObjIn.handler;
+ }
+
+ // Make sure that the function being executed has a unique ID
+ if (!handler.guid) {
+ handler.guid = jQuery.guid++;
+ }
+
+ // Init the element's event structure
+ var elemData = jQuery.data(elem);
+
+ // If no elemData is found then we must be trying to bind to one of the
+ // banned noData elements
+ if (!elemData) {
+ return;
+ }
+
+ // Use a key less likely to result in collisions for plain JS objects.
+ // Fixes bug #7150.
+ var eventKey = elem.nodeType ? "events" : "__events__",
+ events = elemData[eventKey],
+ eventHandle = elemData.handle;
+
+ if (typeof events === "function") {
+ // On plain objects events is a fn that holds the the data
+ // which prevents this data from being JSON serialized
+ // the function does not need to be called, it just contains the data
+ eventHandle = events.handle;
+ events = events.events;
+
+ } else if (!events) {
+ if (!elem.nodeType) {
+ // On plain objects, create a fn that acts as the holder
+ // of the values to avoid JSON serialization of event data
+ elemData[eventKey] = elemData = function () { };
+ }
+
+ elemData.events = events = {};
+ }
+
+ if (!eventHandle) {
+ elemData.handle = eventHandle = function () {
+ // Handle the second event of a trigger and when
+ // an event is called after a page has unloaded
+ return typeof jQuery !== "undefined" && !jQuery.event.triggered ?
+ jQuery.event.handle.apply(eventHandle.elem, arguments) :
+ undefined;
+ };
+ }
+
+ // Add elem as a property of the handle function
+ // This is to prevent a memory leak with non-native events in IE.
+ eventHandle.elem = elem;
+
+ // Handle multiple events separated by a space
+ // jQuery(...).bind("mouseover mouseout", fn);
+ types = types.split(" ");
+
+ var type, i = 0, namespaces;
+
+ while ((type = types[i++])) {
+ handleObj = handleObjIn ?
+ jQuery.extend({}, handleObjIn) :
+ { handler: handler, data: data };
+
+ // Namespaced event handlers
+ if (type.indexOf(".") > -1) {
+ namespaces = type.split(".");
+ type = namespaces.shift();
+ handleObj.namespace = namespaces.slice(0).sort().join(".");
+
+ } else {
+ namespaces = [];
+ handleObj.namespace = "";
+ }
+
+ handleObj.type = type;
+ if (!handleObj.guid) {
+ handleObj.guid = handler.guid;
+ }
+
+ // Get the current list of functions bound to this event
+ var handlers = events[type],
+ special = jQuery.event.special[type] || {};
+
+ // Init the event handler queue
+ if (!handlers) {
+ handlers = events[type] = [];
+
+ // Check for a special event handler
+ // Only use addEventListener/attachEvent if the special
+ // events handler returns false
+ if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {
+ // Bind the global event handler to the element
+ if (elem.addEventListener) {
+ elem.addEventListener(type, eventHandle, false);
+
+ } else if (elem.attachEvent) {
+ elem.attachEvent("on" + type, eventHandle);
+ }
+ }
+ }
+
+ if (special.add) {
+ special.add.call(elem, handleObj);
+
+ if (!handleObj.handler.guid) {
+ handleObj.handler.guid = handler.guid;
+ }
+ }
+
+ // Add the function to the element's handler list
+ handlers.push(handleObj);
+
+ // Keep track of which events have been used, for global triggering
+ jQuery.event.global[type] = true;
+ }
+
+ // Nullify elem to prevent memory leaks in IE
+ elem = null;
+ },
+
+ global: {},
+
+ // Detach an event or set of events from an element
+ remove: function (elem, types, handler) {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ // don't do events on text and comment nodes
+ if (elem.nodeType === 3 || elem.nodeType === 8) {
+ return;
+ }
+
+ if (handler === false) {
+ handler = returnFalse;
+ }
+
+ var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType,
+ eventKey = elem.nodeType ? "events" : "__events__",
+ elemData = jQuery.data(elem),
+ events = elemData && elemData[eventKey];
+
+ if (!elemData || !events) {
+ return;
+ }
+
+ if (typeof events === "function") {
+ elemData = events;
+ events = events.events;
+ }
+
+ // types is actually an event object here
+ if (types && types.type) {
+ handler = types.handler;
+ types = types.type;
+ }
+
+ // Unbind all events for the element
+ if (!types || typeof types === "string" && types.charAt(0) === ".") {
+ types = types || "";
+
+ for (type in events) {
+ jQuery.event.remove(elem, type + types);
+ }
+
+ return;
+ }
+
+ // Handle multiple events separated by a space
+ // jQuery(...).unbind("mouseover mouseout", fn);
+ types = types.split(" ");
+
+ while ((type = types[i++])) {
+ origType = type;
+ handleObj = null;
+ all = type.indexOf(".") < 0;
+ namespaces = [];
+
+ if (!all) {
+ // Namespaced event handlers
+ namespaces = type.split(".");
+ type = namespaces.shift();
+
+ namespace = new RegExp("(^|\\.)" +
+ jQuery.map(namespaces.slice(0).sort(), fcleanup).join("\\.(?:.*\\.)?") + "(\\.|$)");
+ }
+
+ eventType = events[type];
+
+ if (!eventType) {
+ continue;
+ }
+
+ if (!handler) {
+ for (j = 0; j < eventType.length; j++) {
+ handleObj = eventType[j];
+
+ if (all || namespace.test(handleObj.namespace)) {
+ jQuery.event.remove(elem, origType, handleObj.handler, j);
+ eventType.splice(j--, 1);
+ }
+ }
+
+ continue;
+ }
+
+ special = jQuery.event.special[type] || {};
+
+ for (j = pos || 0; j < eventType.length; j++) {
+ handleObj = eventType[j];
+
+ if (handler.guid === handleObj.guid) {
+ // remove the given handler for the given type
+ if (all || namespace.test(handleObj.namespace)) {
+ if (pos == null) {
+ eventType.splice(j--, 1);
+ }
+
+ if (special.remove) {
+ special.remove.call(elem, handleObj);
+ }
+ }
+
+ if (pos != null) {
+ break;
+ }
+ }
+ }
+
+ // remove generic event handler if no more handlers exist
+ if (eventType.length === 0 || pos != null && eventType.length === 1) {
+ if (!special.teardown || special.teardown.call(elem, namespaces) === false) {
+ jQuery.removeEvent(elem, type, elemData.handle);
+ }
+
+ ret = null;
+ delete events[type];
+ }
+ }
+
+ // Remove the expando if it's no longer used
+ if (jQuery.isEmptyObject(events)) {
+ var handle = elemData.handle;
+ if (handle) {
+ handle.elem = null;
+ }
+
+ delete elemData.events;
+ delete elemData.handle;
+
+ if (typeof elemData === "function") {
+ jQuery.removeData(elem, eventKey);
+
+ } else if (jQuery.isEmptyObject(elemData)) {
+ jQuery.removeData(elem);
+ }
+ }
+ },
+
+ // bubbling is internal
+ trigger: function (event, data, elem /*, bubbling */) {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ // Event object or event type
+ var type = event.type || event,
+ bubbling = arguments[3];
+
+ if (!bubbling) {
+ event = typeof event === "object" ?
+ // jQuery.Event object
+ event[jQuery.expando] ? event :
+ // Object literal
+ jQuery.extend(jQuery.Event(type), event) :
+ // Just the event type (string)
+ jQuery.Event(type);
+
+ if (type.indexOf("!") >= 0) {
+ event.type = type = type.slice(0, -1);
+ event.exclusive = true;
+ }
+
+ // Handle a global trigger
+ if (!elem) {
+ // Don't bubble custom events when global (to avoid too much overhead)
+ event.stopPropagation();
+
+ // Only trigger if we've ever bound an event for it
+ if (jQuery.event.global[type]) {
+ jQuery.each(jQuery.cache, function () {
+ if (this.events && this.events[type]) {
+ jQuery.event.trigger(event, data, this.handle.elem);
+ }
+ });
+ }
+ }
+
+ // Handle triggering a single element
+
+ // don't do events on text and comment nodes
+ if (!elem || elem.nodeType === 3 || elem.nodeType === 8) {
+ return undefined;
+ }
+
+ // Clean up in case it is reused
+ event.result = undefined;
+ event.target = elem;
+
+ // Clone the incoming data, if any
+ data = jQuery.makeArray(data);
+ data.unshift(event);
+ }
+
+ event.currentTarget = elem;
+
+ // Trigger the event, it is assumed that "handle" is a function
+ var handle = elem.nodeType ?
+ jQuery.data(elem, "handle") :
+ (jQuery.data(elem, "__events__") || {}).handle;
+
+ if (handle) {
+ handle.apply(elem, data);
+ }
+
+ var parent = elem.parentNode || elem.ownerDocument;
+
+ // Trigger an inline bound script
+ try {
+ if (!(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()])) {
+ if (elem["on" + type] && elem["on" + type].apply(elem, data) === false) {
+ event.result = false;
+ event.preventDefault();
+ }
+ }
+
+ // prevent IE from throwing an error for some elements with some event types, see #3533
+ } catch (inlineError) { }
+
+ if (!event.isPropagationStopped() && parent) {
+ jQuery.event.trigger(event, data, parent, true);
+
+ } else if (!event.isDefaultPrevented()) {
+ var old,
+ target = event.target,
+ targetType = type.replace(rnamespaces, ""),
+ isClick = jQuery.nodeName(target, "a") && targetType === "click",
+ special = jQuery.event.special[targetType] || {};
+
+ if ((!special._default || special._default.call(elem, event) === false) &&
+ !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()])) {
+
+ try {
+ if (target[targetType]) {
+ // Make sure that we don't accidentally re-trigger the onFOO events
+ old = target["on" + targetType];
+
+ if (old) {
+ target["on" + targetType] = null;
+ }
+
+ jQuery.event.triggered = true;
+ target[targetType]();
+ }
+
+ // prevent IE from throwing an error for some elements with some event types, see #3533
+ } catch (triggerError) { }
+
+ if (old) {
+ target["on" + targetType] = old;
+ }
+
+ jQuery.event.triggered = false;
+ }
+ }
+ },
+
+ handle: function (event) {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ var all, handlers, namespaces, namespace_re, events,
+ namespace_sort = [],
+ args = jQuery.makeArray(arguments);
+
+ event = args[0] = jQuery.event.fix(event || window.event);
+ event.currentTarget = this;
+
+ // Namespaced event handlers
+ all = event.type.indexOf(".") < 0 && !event.exclusive;
+
+ if (!all) {
+ namespaces = event.type.split(".");
+ event.type = namespaces.shift();
+ namespace_sort = namespaces.slice(0).sort();
+ namespace_re = new RegExp("(^|\\.)" + namespace_sort.join("\\.(?:.*\\.)?") + "(\\.|$)");
+ }
+
+ event.namespace = event.namespace || namespace_sort.join(".");
+
+ events = jQuery.data(this, this.nodeType ? "events" : "__events__");
+
+ if (typeof events === "function") {
+ events = events.events;
+ }
+
+ handlers = (events || {})[event.type];
+
+ if (events && handlers) {
+ // Clone the handlers to prevent manipulation
+ handlers = handlers.slice(0);
+
+ for (var j = 0, l = handlers.length; j < l; j++) {
+ var handleObj = handlers[j];
+
+ // Filter the functions by class
+ if (all || namespace_re.test(handleObj.namespace)) {
+ // Pass in a reference to the handler function itself
+ // So that we can later remove it
+ event.handler = handleObj.handler;
+ event.data = handleObj.data;
+ event.handleObj = handleObj;
+
+ var ret = handleObj.handler.apply(this, args);
+
+ if (ret !== undefined) {
+ event.result = ret;
+ if (ret === false) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+
+ if (event.isImmediatePropagationStopped()) {
+ break;
+ }
+ }
+ }
+ }
+
+ return event.result;
+ },
+
+ props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+
+ fix: function (event) {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ if (event[jQuery.expando]) {
+ return event;
+ }
+
+ // store a copy of the original event object
+ // and "clone" to set read-only properties
+ var originalEvent = event;
+ event = jQuery.Event(originalEvent);
+
+ for (var i = this.props.length, prop; i; ) {
+ prop = this.props[--i];
+ event[prop] = originalEvent[prop];
+ }
+
+ // Fix target property, if necessary
+ if (!event.target) {
+ // Fixes #1925 where srcElement might not be defined either
+ event.target = event.srcElement || document;
+ }
+
+ // check if target is a textnode (safari)
+ if (event.target.nodeType === 3) {
+ event.target = event.target.parentNode;
+ }
+
+ // Add relatedTarget, if necessary
+ if (!event.relatedTarget && event.fromElement) {
+ event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;
+ }
+
+ // Calculate pageX/Y if missing and clientX/Y available
+ if (event.pageX == null && event.clientX != null) {
+ var doc = document.documentElement,
+ body = document.body;
+
+ event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
+ event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
+ }
+
+ // Add which for key events
+ if (event.which == null && (event.charCode != null || event.keyCode != null)) {
+ event.which = event.charCode != null ? event.charCode : event.keyCode;
+ }
+
+ // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
+ if (!event.metaKey && event.ctrlKey) {
+ event.metaKey = event.ctrlKey;
+ }
+
+ // Add which for click: 1 === left; 2 === middle; 3 === right
+ // Note: button is not normalized, so don't use it
+ if (!event.which && event.button !== undefined) {
+ event.which = (event.button & 1 ? 1 : (event.button & 2 ? 3 : (event.button & 4 ? 2 : 0)));
+ }
+
+ return event;
+ },
+
+ // Deprecated, use jQuery.guid instead
+ guid: 1E8,
+
+ // Deprecated, use jQuery.proxy instead
+ proxy: jQuery.proxy,
+
+ special: {
+ ready: {
+ // Make sure the ready event is setup
+ setup: jQuery.bindReady,
+ teardown: jQuery.noop
+ },
+
+ live: {
+ add: function (handleObj) {
+ jQuery.event.add(this,
+ liveConvert(handleObj.origType, handleObj.selector),
+ jQuery.extend({}, handleObj, { handler: liveHandler, guid: handleObj.handler.guid }));
+ },
+
+ remove: function (handleObj) {
+ jQuery.event.remove(this, liveConvert(handleObj.origType, handleObj.selector), handleObj);
+ }
+ },
+
+ beforeunload: {
+ setup: function (data, namespaces, eventHandle) {
+ // We only want to do this special case on windows
+ if (jQuery.isWindow(this)) {
+ this.onbeforeunload = eventHandle;
+ }
+ },
+
+ teardown: function (namespaces, eventHandle) {
+ if (this.onbeforeunload === eventHandle) {
+ this.onbeforeunload = null;
+ }
+ }
+ }
+ }
+ };
+
+ jQuery.removeEvent = document.removeEventListener ?
+ function (elem, type, handle) {
+ if (elem.removeEventListener) {
+ elem.removeEventListener(type, handle, false);
+ }
+ } :
+ function (elem, type, handle) {
+ if (elem.detachEvent) {
+ elem.detachEvent("on" + type, handle);
+ }
+ };
+
+ jQuery.Event = function (src) {
+ // Allow instantiation without the 'new' keyword
+ if (!this.preventDefault) {
+ return new jQuery.Event(src);
+ }
+
+ // Event object
+ if (src && src.type) {
+ this.originalEvent = src;
+ this.type = src.type;
+ // Event type
+ } else {
+ this.type = src;
+ }
+
+ // timeStamp is buggy for some events on Firefox(#3843)
+ // So we won't rely on the native value
+ this.timeStamp = jQuery.now();
+
+ // Mark it as fixed
+ this[jQuery.expando] = true;
+ };
+
+ function returnFalse() {
+ return false;
+ }
+ function returnTrue() {
+ return true;
+ }
+
+ // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+ // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+ jQuery.Event.prototype = {
+ preventDefault: function () {
+ this.isDefaultPrevented = returnTrue;
+
+ var e = this.originalEvent;
+ if (!e) {
+ return;
+ }
+
+ // if preventDefault exists run it on the original event
+ if (e.preventDefault) {
+ e.preventDefault();
+
+ // otherwise set the returnValue property of the original event to false (IE)
+ } else {
+ e.returnValue = false;
+ }
+ },
+ stopPropagation: function () {
+ this.isPropagationStopped = returnTrue;
+
+ var e = this.originalEvent;
+ if (!e) {
+ return;
+ }
+ // if stopPropagation exists run it on the original event
+ if (e.stopPropagation) {
+ e.stopPropagation();
+ }
+ // otherwise set the cancelBubble property of the original event to true (IE)
+ e.cancelBubble = true;
+ },
+ stopImmediatePropagation: function () {
+ this.isImmediatePropagationStopped = returnTrue;
+ this.stopPropagation();
+ },
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse
+ };
+
+ // Checks if an event happened on an element within another element
+ // Used in jQuery.event.special.mouseenter and mouseleave handlers
+ var withinElement = function (event) {
+ // Check if mouse(over|out) are still within the same parent element
+ var parent = event.relatedTarget;
+
+ // Firefox sometimes assigns relatedTarget a XUL element
+ // which we cannot access the parentNode property of
+ try {
+ // Traverse up the tree
+ while (parent && parent !== this) {
+ parent = parent.parentNode;
+ }
+
+ if (parent !== this) {
+ // set the correct event type
+ event.type = event.data;
+
+ // handle event if we actually just moused on to a non sub-element
+ jQuery.event.handle.apply(this, arguments);
+ }
+
+ // assuming we've left the element since we most likely mousedover a xul element
+ } catch (e) { }
+ },
+
+ // In case of event delegation, we only need to rename the event.type,
+ // liveHandler will take care of the rest.
+delegate = function (event) {
+ event.type = event.data;
+ jQuery.event.handle.apply(this, arguments);
+};
+
+ // Create mouseenter and mouseleave events
+ jQuery.each({
+ mouseenter: "mouseover",
+ mouseleave: "mouseout"
+ }, function (orig, fix) {
+ jQuery.event.special[orig] = {
+ setup: function (data) {
+ jQuery.event.add(this, fix, data && data.selector ? delegate : withinElement, orig);
+ },
+ teardown: function (data) {
+ jQuery.event.remove(this, fix, data && data.selector ? delegate : withinElement);
+ }
+ };
+ });
+
+ // submit delegation
+ if (!jQuery.support.submitBubbles) {
+
+ jQuery.event.special.submit = {
+ setup: function (data, namespaces) {
+ if (this.nodeName.toLowerCase() !== "form") {
+ jQuery.event.add(this, "click.specialSubmit", function (e) {
+ var elem = e.target,
+ type = elem.type;
+
+ if ((type === "submit" || type === "image") && jQuery(elem).closest("form").length) {
+ e.liveFired = undefined;
+ return trigger("submit", this, arguments);
+ }
+ });
+
+ jQuery.event.add(this, "keypress.specialSubmit", function (e) {
+ var elem = e.target,
+ type = elem.type;
+
+ if ((type === "text" || type === "password") && jQuery(elem).closest("form").length && e.keyCode === 13) {
+ e.liveFired = undefined;
+ return trigger("submit", this, arguments);
+ }
+ });
+
+ } else {
+ return false;
+ }
+ },
+
+ teardown: function (namespaces) {
+ jQuery.event.remove(this, ".specialSubmit");
+ }
+ };
+
+ }
+
+ // change delegation, happens here so we have bind.
+ if (!jQuery.support.changeBubbles) {
+
+ var changeFilters,
+
+ getVal = function (elem) {
+ var type = elem.type, val = elem.value;
+
+ if (type === "radio" || type === "checkbox") {
+ val = elem.checked;
+
+ } else if (type === "select-multiple") {
+ val = elem.selectedIndex > -1 ?
+ jQuery.map(elem.options, function (elem) {
+ return elem.selected;
+ }).join("-") :
+ "";
+
+ } else if (elem.nodeName.toLowerCase() === "select") {
+ val = elem.selectedIndex;
+ }
+
+ return val;
+ },
+
+ testChange = function testChange(e) {
+ var elem = e.target, data, val;
+
+ if (!rformElems.test(elem.nodeName) || elem.readOnly) {
+ return;
+ }
+
+ data = jQuery.data(elem, "_change_data");
+ val = getVal(elem);
+
+ // the current data will be also retrieved by beforeactivate
+ if (e.type !== "focusout" || elem.type !== "radio") {
+ jQuery.data(elem, "_change_data", val);
+ }
+
+ if (data === undefined || val === data) {
+ return;
+ }
+
+ if (data != null || val) {
+ e.type = "change";
+ e.liveFired = undefined;
+ return jQuery.event.trigger(e, arguments[1], elem);
+ }
+ };
+
+ jQuery.event.special.change = {
+ filters: {
+ focusout: testChange,
+
+ beforedeactivate: testChange,
+
+ click: function (e) {
+ var elem = e.target, type = elem.type;
+
+ if (type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select") {
+ return testChange.call(this, e);
+ }
+ },
+
+ // Change has to be called before submit
+ // Keydown will be called before keypress, which is used in submit-event delegation
+ keydown: function (e) {
+ var elem = e.target, type = elem.type;
+
+ if ((e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") ||
+ (e.keyCode === 32 && (type === "checkbox" || type === "radio")) ||
+ type === "select-multiple") {
+ return testChange.call(this, e);
+ }
+ },
+
+ // Beforeactivate happens also before the previous element is blurred
+ // with this event you can't trigger a change event, but you can store
+ // information
+ beforeactivate: function (e) {
+ var elem = e.target;
+ jQuery.data(elem, "_change_data", getVal(elem));
+ }
+ },
+
+ setup: function (data, namespaces) {
+ if (this.type === "file") {
+ return false;
+ }
+
+ for (var type in changeFilters) {
+ jQuery.event.add(this, type + ".specialChange", changeFilters[type]);
+ }
+
+ return rformElems.test(this.nodeName);
+ },
+
+ teardown: function (namespaces) {
+ jQuery.event.remove(this, ".specialChange");
+
+ return rformElems.test(this.nodeName);
+ }
+ };
+
+ changeFilters = jQuery.event.special.change.filters;
+
+ // Handle when the input is .focus()'d
+ changeFilters.focus = changeFilters.beforeactivate;
+ }
+
+ function trigger(type, elem, args) {
+ args[0].type = type;
+ return jQuery.event.handle.apply(elem, args);
+ }
+
+ // Create "bubbling" focus and blur events
+ if (document.addEventListener) {
+ jQuery.each({ focus: "focusin", blur: "focusout" }, function (orig, fix) {
+ jQuery.event.special[fix] = {
+ setup: function () {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ if (focusCounts[fix]++ === 0) {
+ document.addEventListener(orig, handler, true);
+ }
+ },
+ teardown: function () {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ if (--focusCounts[fix] === 0) {
+ document.removeEventListener(orig, handler, true);
+ }
+ }
+ };
+
+ function handler(e) {
+ e = jQuery.event.fix(e);
+ e.type = fix;
+ return jQuery.event.trigger(e, null, e.target);
+ }
+ });
+ }
+
+ // jQuery.each(["bind", "one"], function( i, name ) {
+ // jQuery.fn[ name ] = function( type, data, fn ) {
+ // // Handle object literals
+ // if ( typeof type === "object" ) {
+ // for ( var key in type ) {
+ // this[ name ](key, data, type[key], fn);
+ // }
+ // return this;
+ // }
+
+ // if ( jQuery.isFunction( data ) || data === false ) {
+ // fn = data;
+ // data = undefined;
+ // }
+
+ // var handler = name === "one" ? jQuery.proxy( fn, function( event ) {
+ // jQuery( this ).unbind( event, handler );
+ // return fn.apply( this, arguments );
+ // }) : fn;
+
+ // if ( type === "unload" && name !== "one" ) {
+ // this.one( type, data, fn );
+
+ // } else {
+ // for ( var i = 0, l = this.length; i < l; i++ ) {
+ // jQuery.event.add( this[i], type, handler, data );
+ // }
+ // }
+
+ // return this;
+ // };
+ // });
+
+ jQuery.fn["bind"] = function (type, data, fn) {
+ ///
+ ///
Binds a handler to one or more events for each matched element. Can also bind custom events.
+ ///
+ /// One or more event types separated by a space. Built-in event type values are: blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error .
+ /// Additional data passed to the event handler as event.data
+ /// A function to bind to the event on each of the set of matched elements. function callback(eventObject) such that this corresponds to the dom element.
+
+ // Handle object literals
+ if (typeof type === "object") {
+ for (var key in type) {
+ this["bind"](key, data, type[key], fn);
+ }
+ return this;
+ }
+
+ if (jQuery.isFunction(data)) {
+ fn = data;
+ data = undefined;
+ }
+
+ var handler = "bind" === "one" ? jQuery.proxy(fn, function (event) {
+ jQuery(this).unbind(event, handler);
+ return fn.apply(this, arguments);
+ }) : fn;
+
+ return type === "unload" && "bind" !== "one" ?
+ this.one(type, data, fn) :
+ this.each(function () {
+ jQuery.event.add(this, type, handler, data);
+ });
+ };
+
+ jQuery.fn["one"] = function (type, data, fn) {
+ ///
+ ///
Binds a handler to one or more events to be executed exactly once for each matched element.
+ ///
+ /// One or more event types separated by a space. Built-in event type values are: blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error .
+ /// Additional data passed to the event handler as event.data
+ /// A function to bind to the event on each of the set of matched elements. function callback(eventObject) such that this corresponds to the dom element.
+
+ // Handle object literals
+ if (typeof type === "object") {
+ for (var key in type) {
+ this["one"](key, data, type[key], fn);
+ }
+ return this;
+ }
+
+ if (jQuery.isFunction(data)) {
+ fn = data;
+ data = undefined;
+ }
+
+ var handler = "one" === "one" ? jQuery.proxy(fn, function (event) {
+ jQuery(this).unbind(event, handler);
+ return fn.apply(this, arguments);
+ }) : fn;
+
+ return type === "unload" && "one" !== "one" ?
+ this.one(type, data, fn) :
+ this.each(function () {
+ jQuery.event.add(this, type, handler, data);
+ });
+ };
+
+ jQuery.fn.extend({
+ unbind: function (type, fn) {
+ ///
+ ///
Unbinds a handler from one or more events for each matched element.
+ ///
+ /// One or more event types separated by a space. Built-in event type values are: blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error .
+ /// A function to bind to the event on each of the set of matched elements. function callback(eventObject) such that this corresponds to the dom element.
+
+ // Handle object literals
+ if (typeof type === "object" && !type.preventDefault) {
+ for (var key in type) {
+ this.unbind(key, type[key]);
+ }
+
+ } else {
+ for (var i = 0, l = this.length; i < l; i++) {
+ jQuery.event.remove(this[i], type, fn);
+ }
+ }
+
+ return this;
+ },
+
+ delegate: function (selector, types, data, fn) {
+ return this.live(types, data, fn, selector);
+ },
+
+ undelegate: function (selector, types, fn) {
+ if (arguments.length === 0) {
+ return this.unbind("live");
+
+ } else {
+ return this.die(types, null, fn, selector);
+ }
+ },
+
+ trigger: function (type, data) {
+ ///
+ ///
Triggers a type of event on every matched element.
+ ///
+ /// One or more event types separated by a space. Built-in event type values are: blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error .
+ /// Additional data passed to the event handler as additional arguments.
+ /// This parameter is undocumented.
+
+ return this.each(function () {
+ jQuery.event.trigger(type, data, this);
+ });
+ },
+
+ triggerHandler: function (type, data) {
+ ///
+ ///
Triggers all bound event handlers on an element for a specific event type without executing the browser's default actions.
+ ///
+ /// One or more event types separated by a space. Built-in event type values are: blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error .
+ /// Additional data passed to the event handler as additional arguments.
+ /// This parameter is undocumented.
+
+ if (this[0]) {
+ var event = jQuery.Event(type);
+ event.preventDefault();
+ event.stopPropagation();
+ jQuery.event.trigger(event, data, this[0]);
+ return event.result;
+ }
+ },
+
+ toggle: function (fn) {
+ ///
+ ///
Toggles among two or more function calls every other click.
+ ///
+ /// The functions among which to toggle execution
+
+ // Save reference to arguments for access in closure
+ var args = arguments,
+ i = 1;
+
+ // link all the functions, so any of them can unbind this click handler
+ while (i < args.length) {
+ jQuery.proxy(fn, args[i++]);
+ }
+
+ return this.click(jQuery.proxy(fn, function (event) {
+ // Figure out which function to execute
+ var lastToggle = (jQuery.data(this, "lastToggle" + fn.guid) || 0) % i;
+ jQuery.data(this, "lastToggle" + fn.guid, lastToggle + 1);
+
+ // Make sure that clicks stop
+ event.preventDefault();
+
+ // and execute the function
+ return args[lastToggle].apply(this, arguments) || false;
+ }));
+ },
+
+ hover: function (fnOver, fnOut) {
+ ///
+ ///
Simulates hovering (moving the mouse on or off of an object).
+ ///
+ /// The function to fire when the mouse is moved over a matched element.
+ /// The function to fire when the mouse is moved off of a matched element.
+
+ return this.mouseenter(fnOver).mouseleave(fnOut || fnOver);
+ }
+ });
+
+ var liveMap = {
+ focus: "focusin",
+ blur: "focusout",
+ mouseenter: "mouseover",
+ mouseleave: "mouseout"
+ };
+
+ // jQuery.each(["live", "die"], function( i, name ) {
+ // jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) {
+ // var type, i = 0, match, namespaces, preType,
+ // selector = origSelector || this.selector,
+ // context = origSelector ? this : jQuery( this.context );
+
+ // if ( typeof types === "object" && !types.preventDefault ) {
+ // for ( var key in types ) {
+ // context[ name ]( key, data, types[key], selector );
+ // }
+
+ // return this;
+ // }
+
+ // if ( jQuery.isFunction( data ) ) {
+ // fn = data;
+ // data = undefined;
+ // }
+
+ // types = (types || "").split(" ");
+
+ // while ( (type = types[ i++ ]) != null ) {
+ // match = rnamespaces.exec( type );
+ // namespaces = "";
+
+ // if ( match ) {
+ // namespaces = match[0];
+ // type = type.replace( rnamespaces, "" );
+ // }
+
+ // if ( type === "hover" ) {
+ // types.push( "mouseenter" + namespaces, "mouseleave" + namespaces );
+ // continue;
+ // }
+
+ // preType = type;
+
+ // if ( type === "focus" || type === "blur" ) {
+ // types.push( liveMap[ type ] + namespaces );
+ // type = type + namespaces;
+
+ // } else {
+ // type = (liveMap[ type ] || type) + namespaces;
+ // }
+
+ // if ( name === "live" ) {
+ // // bind live handler
+ // for ( var j = 0, l = context.length; j < l; j++ ) {
+ // jQuery.event.add( context[j], "live." + liveConvert( type, selector ),
+ // { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } );
+ // }
+
+ // } else {
+ // // unbind live handler
+ // context.unbind( "live." + liveConvert( type, selector ), fn );
+ // }
+ // }
+
+ // return this;
+ // };
+ // });
+
+ jQuery.fn["live"] = function (types, data, fn) {
+ ///
+ ///
Attach a handler to the event for all elements which match the current selector, now or
+ ///
in the future.
+ ///
+ ///
+ ///
A string containing a JavaScript event type, such as "click" or "keydown".
+ ///
+ ///
+ ///
A map of data that will be passed to the event handler.
+ ///
+ ///
+ ///
A function to execute at the time the event is triggered.
+ ///
+ ///
+
+ var type, i = 0;
+
+ if (jQuery.isFunction(data)) {
+ fn = data;
+ data = undefined;
+ }
+
+ types = (types || "").split(/\s+/);
+
+ while ((type = types[i++]) != null) {
+ type = type === "focus" ? "focusin" : // focus --> focusin
+ type === "blur" ? "focusout" : // blur --> focusout
+ type === "hover" ? types.push("mouseleave") && "mouseenter" : // hover support
+ type;
+
+ if ("live" === "live") {
+ // bind live handler
+ jQuery(this.context).bind(liveConvert(type, this.selector), {
+ data: data, selector: this.selector, live: type
+ }, fn);
+
+ } else {
+ // unbind live handler
+ jQuery(this.context).unbind(liveConvert(type, this.selector), fn ? { guid: fn.guid + this.selector + type} : null);
+ }
+ }
+
+ return this;
+ }
+
+ jQuery.fn["die"] = function (types, data, fn) {
+ ///
+ ///
Remove all event handlers previously attached using .live() from the elements.
+ ///
+ ///
+ ///
A string containing a JavaScript event type, such as click or keydown.
+ ///
+ ///
+ ///
The function that is to be no longer executed.
+ ///
+ ///
+
+ var type, i = 0;
+
+ if (jQuery.isFunction(data)) {
+ fn = data;
+ data = undefined;
+ }
+
+ types = (types || "").split(/\s+/);
+
+ while ((type = types[i++]) != null) {
+ type = type === "focus" ? "focusin" : // focus --> focusin
+ type === "blur" ? "focusout" : // blur --> focusout
+ type === "hover" ? types.push("mouseleave") && "mouseenter" : // hover support
+ type;
+
+ if ("die" === "live") {
+ // bind live handler
+ jQuery(this.context).bind(liveConvert(type, this.selector), {
+ data: data, selector: this.selector, live: type
+ }, fn);
+
+ } else {
+ // unbind live handler
+ jQuery(this.context).unbind(liveConvert(type, this.selector), fn ? { guid: fn.guid + this.selector + type} : null);
+ }
+ }
+
+ return this;
+ }
+
+ function liveHandler(event) {
+ var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret,
+ elems = [],
+ selectors = [],
+ events = jQuery.data(this, this.nodeType ? "events" : "__events__");
+
+ if (typeof events === "function") {
+ events = events.events;
+ }
+
+ // Make sure we avoid non-left-click bubbling in Firefox (#3861)
+ if (event.liveFired === this || !events || !events.live || event.button && event.type === "click") {
+ return;
+ }
+
+ if (event.namespace) {
+ namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)");
+ }
+
+ event.liveFired = this;
+
+ var live = events.live.slice(0);
+
+ for (j = 0; j < live.length; j++) {
+ handleObj = live[j];
+
+ if (handleObj.origType.replace(rnamespaces, "") === event.type) {
+ selectors.push(handleObj.selector);
+
+ } else {
+ live.splice(j--, 1);
+ }
+ }
+
+ match = jQuery(event.target).closest(selectors, event.currentTarget);
+
+ for (i = 0, l = match.length; i < l; i++) {
+ close = match[i];
+
+ for (j = 0; j < live.length; j++) {
+ handleObj = live[j];
+
+ if (close.selector === handleObj.selector && (!namespace || namespace.test(handleObj.namespace))) {
+ elem = close.elem;
+ related = null;
+
+ // Those two events require additional checking
+ if (handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave") {
+ event.type = handleObj.preType;
+ related = jQuery(event.relatedTarget).closest(handleObj.selector)[0];
+ }
+
+ if (!related || related !== elem) {
+ elems.push({ elem: elem, handleObj: handleObj, level: close.level });
+ }
+ }
+ }
+ }
+
+ for (i = 0, l = elems.length; i < l; i++) {
+ match = elems[i];
+
+ if (maxLevel && match.level > maxLevel) {
+ break;
+ }
+
+ event.currentTarget = match.elem;
+ event.data = match.handleObj.data;
+ event.handleObj = match.handleObj;
+
+ ret = match.handleObj.origHandler.apply(match.elem, arguments);
+
+ if (ret === false || event.isPropagationStopped()) {
+ maxLevel = match.level;
+
+ if (ret === false) {
+ stop = false;
+ }
+ if (event.isImmediatePropagationStopped()) {
+ break;
+ }
+ }
+ }
+
+ return stop;
+ }
+
+ function liveConvert(type, selector) {
+ return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspace, "&");
+ }
+
+ // jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
+ // "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+ // "change select submit keydown keypress keyup error").split(" "), function( i, name ) {
+
+ // // Handle event binding
+ // jQuery.fn[ name ] = function( data, fn ) {
+ // if ( fn == null ) {
+ // fn = data;
+ // data = null;
+ // }
+
+ // return arguments.length > 0 ?
+ // this.bind( name, data, fn ) :
+ // this.trigger( name );
+ // };
+
+ // if ( jQuery.attrFn ) {
+ // jQuery.attrFn[ name ] = true;
+ // }
+ // });
+
+ jQuery.fn["blur"] = function (fn) {
+ ///
+ ///
1: blur() - Triggers the blur event of each matched element.
+ ///
2: blur(fn) - Binds a function to the blur event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("blur", fn) : this.trigger("blur");
+ };
+
+ jQuery.fn["focus"] = function (fn) {
+ ///
+ ///
1: focus() - Triggers the focus event of each matched element.
+ ///
2: focus(fn) - Binds a function to the focus event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("focus", fn) : this.trigger("focus");
+ };
+
+ jQuery.fn["focusin"] = function (fn) {
+ ///
+ ///
Bind an event handler to the "focusin" JavaScript event.
+ ///
+ ///
+ ///
A function to execute each time the event is triggered.
+ ///
+ ///
+
+ return fn ? this.bind("focusin", fn) : this.trigger("focusin");
+ };
+
+ jQuery.fn["focusout"] = function (fn) {
+ ///
+ ///
Bind an event handler to the "focusout" JavaScript event.
+ ///
+ ///
+ ///
A function to execute each time the event is triggered.
+ ///
+ ///
+
+ return fn ? this.bind("focusout", fn) : this.trigger("focusout");
+ };
+
+ jQuery.fn["load"] = function (fn) {
+ ///
+ ///
1: load() - Triggers the load event of each matched element.
+ ///
2: load(fn) - Binds a function to the load event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("load", fn) : this.trigger("load");
+ };
+
+ jQuery.fn["resize"] = function (fn) {
+ ///
+ ///
1: resize() - Triggers the resize event of each matched element.
+ ///
2: resize(fn) - Binds a function to the resize event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("resize", fn) : this.trigger("resize");
+ };
+
+ jQuery.fn["scroll"] = function (fn) {
+ ///
+ ///
1: scroll() - Triggers the scroll event of each matched element.
+ ///
2: scroll(fn) - Binds a function to the scroll event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("scroll", fn) : this.trigger("scroll");
+ };
+
+ jQuery.fn["unload"] = function (fn) {
+ ///
+ ///
1: unload() - Triggers the unload event of each matched element.
+ ///
2: unload(fn) - Binds a function to the unload event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("unload", fn) : this.trigger("unload");
+ };
+
+ jQuery.fn["click"] = function (fn) {
+ ///
+ ///
1: click() - Triggers the click event of each matched element.
+ ///
2: click(fn) - Binds a function to the click event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("click", fn) : this.trigger("click");
+ };
+
+ jQuery.fn["dblclick"] = function (fn) {
+ ///
+ ///
1: dblclick() - Triggers the dblclick event of each matched element.
+ ///
2: dblclick(fn) - Binds a function to the dblclick event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("dblclick", fn) : this.trigger("dblclick");
+ };
+
+ jQuery.fn["mousedown"] = function (fn) {
+ ///
+ ///
Binds a function to the mousedown event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("mousedown", fn) : this.trigger("mousedown");
+ };
+
+ jQuery.fn["mouseup"] = function (fn) {
+ ///
+ ///
Bind a function to the mouseup event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("mouseup", fn) : this.trigger("mouseup");
+ };
+
+ jQuery.fn["mousemove"] = function (fn) {
+ ///
+ ///
Bind a function to the mousemove event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("mousemove", fn) : this.trigger("mousemove");
+ };
+
+ jQuery.fn["mouseover"] = function (fn) {
+ ///
+ ///
Bind a function to the mouseover event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("mouseover", fn) : this.trigger("mouseover");
+ };
+
+ jQuery.fn["mouseout"] = function (fn) {
+ ///
+ ///
Bind a function to the mouseout event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("mouseout", fn) : this.trigger("mouseout");
+ };
+
+ jQuery.fn["mouseenter"] = function (fn) {
+ ///
+ ///
Bind a function to the mouseenter event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("mouseenter", fn) : this.trigger("mouseenter");
+ };
+
+ jQuery.fn["mouseleave"] = function (fn) {
+ ///
+ ///
Bind a function to the mouseleave event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("mouseleave", fn) : this.trigger("mouseleave");
+ };
+
+ jQuery.fn["change"] = function (fn) {
+ ///
+ ///
1: change() - Triggers the change event of each matched element.
+ ///
2: change(fn) - Binds a function to the change event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("change", fn) : this.trigger("change");
+ };
+
+ jQuery.fn["select"] = function (fn) {
+ ///
+ ///
1: select() - Triggers the select event of each matched element.
+ ///
2: select(fn) - Binds a function to the select event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("select", fn) : this.trigger("select");
+ };
+
+ jQuery.fn["submit"] = function (fn) {
+ ///
+ ///
1: submit() - Triggers the submit event of each matched element.
+ ///
2: submit(fn) - Binds a function to the submit event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("submit", fn) : this.trigger("submit");
+ };
+
+ jQuery.fn["keydown"] = function (fn) {
+ ///
+ ///
1: keydown() - Triggers the keydown event of each matched element.
+ ///
2: keydown(fn) - Binds a function to the keydown event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("keydown", fn) : this.trigger("keydown");
+ };
+
+ jQuery.fn["keypress"] = function (fn) {
+ ///
+ ///
1: keypress() - Triggers the keypress event of each matched element.
+ ///
2: keypress(fn) - Binds a function to the keypress event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("keypress", fn) : this.trigger("keypress");
+ };
+
+ jQuery.fn["keyup"] = function (fn) {
+ ///
+ ///
1: keyup() - Triggers the keyup event of each matched element.
+ ///
2: keyup(fn) - Binds a function to the keyup event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("keyup", fn) : this.trigger("keyup");
+ };
+
+ jQuery.fn["error"] = function (fn) {
+ ///
+ ///
1: error() - Triggers the error event of each matched element.
+ ///
2: error(fn) - Binds a function to the error event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("error", fn) : this.trigger("error");
+ };
+
+ // Prevent memory leaks in IE
+ // Window isn't included so as not to unbind existing unload events
+ // More info:
+ // - http://isaacschlueter.com/2006/10/msie-memory-leaks/
+ if (window.attachEvent && !window.addEventListener) {
+ jQuery(window).bind("unload", function () {
+ for (var id in jQuery.cache) {
+ if (jQuery.cache[id].handle) {
+ // Try/Catch is to handle iframes being unloaded, see #4280
+ try {
+ jQuery.event.remove(jQuery.cache[id].handle.elem);
+ } catch (e) { }
+ }
+ }
+ });
+ }
+
+
+ (function () {
+
+ var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+ done = 0,
+ toString = Object.prototype.toString,
+ hasDuplicate = false,
+ baseHasDuplicate = true;
+
+ // Here we check if the JavaScript engine is using some sort of
+ // optimization where it does not always call our comparision
+ // function. If that is the case, discard the hasDuplicate value.
+ // Thus far that includes Google Chrome.
+ [0, 0].sort(function () {
+ baseHasDuplicate = false;
+ return 0;
+ });
+
+ var Sizzle = function (selector, context, results, seed) {
+ results = results || [];
+ context = context || document;
+
+ var origContext = context;
+
+ if (context.nodeType !== 1 && context.nodeType !== 9) {
+ return [];
+ }
+
+ if (!selector || typeof selector !== "string") {
+ return results;
+ }
+
+ var m, set, checkSet, extra, ret, cur, pop, i,
+ prune = true,
+ contextXML = Sizzle.isXML(context),
+ parts = [],
+ soFar = selector;
+
+ // Reset the position of the chunker regexp (start from head)
+ do {
+ chunker.exec("");
+ m = chunker.exec(soFar);
+
+ if (m) {
+ soFar = m[3];
+
+ parts.push(m[1]);
+
+ if (m[2]) {
+ extra = m[3];
+ break;
+ }
+ }
+ } while (m);
+
+ if (parts.length > 1 && origPOS.exec(selector)) {
+
+ if (parts.length === 2 && Expr.relative[parts[0]]) {
+ set = posProcess(parts[0] + parts[1], context);
+
+ } else {
+ set = Expr.relative[parts[0]] ?
+ [context] :
+ Sizzle(parts.shift(), context);
+
+ while (parts.length) {
+ selector = parts.shift();
+
+ if (Expr.relative[selector]) {
+ selector += parts.shift();
+ }
+
+ set = posProcess(selector, set);
+ }
+ }
+
+ } else {
+ // Take a shortcut and set the context if the root selector is an ID
+ // (but not if it'll be faster if the inner selector is an ID)
+ if (!seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
+ Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1])) {
+
+ ret = Sizzle.find(parts.shift(), context, contextXML);
+ context = ret.expr ?
+ Sizzle.filter(ret.expr, ret.set)[0] :
+ ret.set[0];
+ }
+
+ if (context) {
+ ret = seed ?
+ { expr: parts.pop(), set: makeArray(seed)} :
+ Sizzle.find(parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML);
+
+ set = ret.expr ?
+ Sizzle.filter(ret.expr, ret.set) :
+ ret.set;
+
+ if (parts.length > 0) {
+ checkSet = makeArray(set);
+
+ } else {
+ prune = false;
+ }
+
+ while (parts.length) {
+ cur = parts.pop();
+ pop = cur;
+
+ if (!Expr.relative[cur]) {
+ cur = "";
+ } else {
+ pop = parts.pop();
+ }
+
+ if (pop == null) {
+ pop = context;
+ }
+
+ Expr.relative[cur](checkSet, pop, contextXML);
+ }
+
+ } else {
+ checkSet = parts = [];
+ }
+ }
+
+ if (!checkSet) {
+ checkSet = set;
+ }
+
+ if (!checkSet) {
+ Sizzle.error(cur || selector);
+ }
+
+ if (toString.call(checkSet) === "[object Array]") {
+ if (!prune) {
+ results.push.apply(results, checkSet);
+
+ } else if (context && context.nodeType === 1) {
+ for (i = 0; checkSet[i] != null; i++) {
+ if (checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i]))) {
+ results.push(set[i]);
+ }
+ }
+
+ } else {
+ for (i = 0; checkSet[i] != null; i++) {
+ if (checkSet[i] && checkSet[i].nodeType === 1) {
+ results.push(set[i]);
+ }
+ }
+ }
+
+ } else {
+ makeArray(checkSet, results);
+ }
+
+ if (extra) {
+ Sizzle(extra, origContext, results, seed);
+ Sizzle.uniqueSort(results);
+ }
+
+ return results;
+ };
+
+ Sizzle.uniqueSort = function (results) {
+ ///
+ ///
Removes all duplicate elements from an array of elements.
+ ///
+ /// The array to translate
+ /// The array after translation.
+
+ if (sortOrder) {
+ hasDuplicate = baseHasDuplicate;
+ results.sort(sortOrder);
+
+ if (hasDuplicate) {
+ for (var i = 1; i < results.length; i++) {
+ if (results[i] === results[i - 1]) {
+ results.splice(i--, 1);
+ }
+ }
+ }
+ }
+
+ return results;
+ };
+
+ Sizzle.matches = function (expr, set) {
+ return Sizzle(expr, null, null, set);
+ };
+
+ Sizzle.matchesSelector = function (node, expr) {
+ return Sizzle(expr, null, null, [node]).length > 0;
+ };
+
+ Sizzle.find = function (expr, context, isXML) {
+ var set;
+
+ if (!expr) {
+ return [];
+ }
+
+ for (var i = 0, l = Expr.order.length; i < l; i++) {
+ var match,
+ type = Expr.order[i];
+
+ if ((match = Expr.leftMatch[type].exec(expr))) {
+ var left = match[1];
+ match.splice(1, 1);
+
+ if (left.substr(left.length - 1) !== "\\") {
+ match[1] = (match[1] || "").replace(/\\/g, "");
+ set = Expr.find[type](match, context, isXML);
+
+ if (set != null) {
+ expr = expr.replace(Expr.match[type], "");
+ break;
+ }
+ }
+ }
+ }
+
+ if (!set) {
+ set = context.getElementsByTagName("*");
+ }
+
+ return { set: set, expr: expr };
+ };
+
+ Sizzle.filter = function (expr, set, inplace, not) {
+ var match, anyFound,
+ old = expr,
+ result = [],
+ curLoop = set,
+ isXMLFilter = set && set[0] && Sizzle.isXML(set[0]);
+
+ while (expr && set.length) {
+ for (var type in Expr.filter) {
+ if ((match = Expr.leftMatch[type].exec(expr)) != null && match[2]) {
+ var found, item,
+ filter = Expr.filter[type],
+ left = match[1];
+
+ anyFound = false;
+
+ match.splice(1, 1);
+
+ if (left.substr(left.length - 1) === "\\") {
+ continue;
+ }
+
+ if (curLoop === result) {
+ result = [];
+ }
+
+ if (Expr.preFilter[type]) {
+ match = Expr.preFilter[type](match, curLoop, inplace, result, not, isXMLFilter);
+
+ if (!match) {
+ anyFound = found = true;
+
+ } else if (match === true) {
+ continue;
+ }
+ }
+
+ if (match) {
+ for (var i = 0; (item = curLoop[i]) != null; i++) {
+ if (item) {
+ found = filter(item, match, i, curLoop);
+ var pass = not ^ !!found;
+
+ if (inplace && found != null) {
+ if (pass) {
+ anyFound = true;
+
+ } else {
+ curLoop[i] = false;
+ }
+
+ } else if (pass) {
+ result.push(item);
+ anyFound = true;
+ }
+ }
+ }
+ }
+
+ if (found !== undefined) {
+ if (!inplace) {
+ curLoop = result;
+ }
+
+ expr = expr.replace(Expr.match[type], "");
+
+ if (!anyFound) {
+ return [];
+ }
+
+ break;
+ }
+ }
+ }
+
+ // Improper expression
+ if (expr === old) {
+ if (anyFound == null) {
+ Sizzle.error(expr);
+
+ } else {
+ break;
+ }
+ }
+
+ old = expr;
+ }
+
+ return curLoop;
+ };
+
+ Sizzle.error = function (msg) {
+ throw "Syntax error, unrecognized expression: " + msg;
+ };
+
+ var Expr = Sizzle.selectors = {
+ order: ["ID", "NAME", "TAG"],
+
+ match: {
+ ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+ CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+ NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
+ ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
+ TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
+ CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
+ POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
+ PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
+ },
+
+ leftMatch: {},
+
+ attrMap: {
+ "class": "className",
+ "for": "htmlFor"
+ },
+
+ attrHandle: {
+ href: function (elem) {
+ return elem.getAttribute("href");
+ }
+ },
+
+ relative: {
+ "+": function (checkSet, part) {
+ var isPartStr = typeof part === "string",
+ isTag = isPartStr && !/\W/.test(part),
+ isPartStrNotTag = isPartStr && !isTag;
+
+ if (isTag) {
+ part = part.toLowerCase();
+ }
+
+ for (var i = 0, l = checkSet.length, elem; i < l; i++) {
+ if ((elem = checkSet[i])) {
+ while ((elem = elem.previousSibling) && elem.nodeType !== 1) { }
+
+ checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
+ elem || false :
+ elem === part;
+ }
+ }
+
+ if (isPartStrNotTag) {
+ Sizzle.filter(part, checkSet, true);
+ }
+ },
+
+ ">": function (checkSet, part) {
+ var elem,
+ isPartStr = typeof part === "string",
+ i = 0,
+ l = checkSet.length;
+
+ if (isPartStr && !/\W/.test(part)) {
+ part = part.toLowerCase();
+
+ for (; i < l; i++) {
+ elem = checkSet[i];
+
+ if (elem) {
+ var parent = elem.parentNode;
+ checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
+ }
+ }
+
+ } else {
+ for (; i < l; i++) {
+ elem = checkSet[i];
+
+ if (elem) {
+ checkSet[i] = isPartStr ?
+ elem.parentNode :
+ elem.parentNode === part;
+ }
+ }
+
+ if (isPartStr) {
+ Sizzle.filter(part, checkSet, true);
+ }
+ }
+ },
+
+ "": function (checkSet, part, isXML) {
+ var nodeCheck,
+ doneName = done++,
+ checkFn = dirCheck;
+
+ if (typeof part === "string" && !/\W/.test(part)) {
+ part = part.toLowerCase();
+ nodeCheck = part;
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML);
+ },
+
+ "~": function (checkSet, part, isXML) {
+ var nodeCheck,
+ doneName = done++,
+ checkFn = dirCheck;
+
+ if (typeof part === "string" && !/\W/.test(part)) {
+ part = part.toLowerCase();
+ nodeCheck = part;
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML);
+ }
+ },
+
+ find: {
+ ID: function (match, context, isXML) {
+ if (typeof context.getElementById !== "undefined" && !isXML) {
+ var m = context.getElementById(match[1]);
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ return m && m.parentNode ? [m] : [];
+ }
+ },
+
+ NAME: function (match, context) {
+ if (typeof context.getElementsByName !== "undefined") {
+ var ret = [],
+ results = context.getElementsByName(match[1]);
+
+ for (var i = 0, l = results.length; i < l; i++) {
+ if (results[i].getAttribute("name") === match[1]) {
+ ret.push(results[i]);
+ }
+ }
+
+ return ret.length === 0 ? null : ret;
+ }
+ },
+
+ TAG: function (match, context) {
+ return context.getElementsByTagName(match[1]);
+ }
+ },
+ preFilter: {
+ CLASS: function (match, curLoop, inplace, result, not, isXML) {
+ match = " " + match[1].replace(/\\/g, "") + " ";
+
+ if (isXML) {
+ return match;
+ }
+
+ for (var i = 0, elem; (elem = curLoop[i]) != null; i++) {
+ if (elem) {
+ if (not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n]/g, " ").indexOf(match) >= 0)) {
+ if (!inplace) {
+ result.push(elem);
+ }
+
+ } else if (inplace) {
+ curLoop[i] = false;
+ }
+ }
+ }
+
+ return false;
+ },
+
+ ID: function (match) {
+ return match[1].replace(/\\/g, "");
+ },
+
+ TAG: function (match, curLoop) {
+ return match[1].toLowerCase();
+ },
+
+ CHILD: function (match) {
+ if (match[1] === "nth") {
+ // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
+ var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
+ match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
+ !/\D/.test(match[2]) && "0n+" + match[2] || match[2]);
+
+ // calculate the numbers (first)n+(last) including if they are negative
+ match[2] = (test[1] + (test[2] || 1)) - 0;
+ match[3] = test[3] - 0;
+ }
+
+ // TODO: Move to normal caching system
+ match[0] = done++;
+
+ return match;
+ },
+
+ ATTR: function (match, curLoop, inplace, result, not, isXML) {
+ var name = match[1].replace(/\\/g, "");
+
+ if (!isXML && Expr.attrMap[name]) {
+ match[1] = Expr.attrMap[name];
+ }
+
+ if (match[2] === "~=") {
+ match[4] = " " + match[4] + " ";
+ }
+
+ return match;
+ },
+
+ PSEUDO: function (match, curLoop, inplace, result, not) {
+ if (match[1] === "not") {
+ // If we're dealing with a complex expression, or a simple one
+ if ((chunker.exec(match[3]) || "").length > 1 || /^\w/.test(match[3])) {
+ match[3] = Sizzle(match[3], null, null, curLoop);
+
+ } else {
+ var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+
+ if (!inplace) {
+ result.push.apply(result, ret);
+ }
+
+ return false;
+ }
+
+ } else if (Expr.match.POS.test(match[0]) || Expr.match.CHILD.test(match[0])) {
+ return true;
+ }
+
+ return match;
+ },
+
+ POS: function (match) {
+ match.unshift(true);
+
+ return match;
+ }
+ },
+
+ filters: {
+ enabled: function (elem) {
+ return elem.disabled === false && elem.type !== "hidden";
+ },
+
+ disabled: function (elem) {
+ return elem.disabled === true;
+ },
+
+ checked: function (elem) {
+ return elem.checked === true;
+ },
+
+ selected: function (elem) {
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ elem.parentNode.selectedIndex;
+
+ return elem.selected === true;
+ },
+
+ parent: function (elem) {
+ return !!elem.firstChild;
+ },
+
+ empty: function (elem) {
+ return !elem.firstChild;
+ },
+
+ has: function (elem, i, match) {
+ ///
+ ///
Internal use only; use hasClass('class')
+ ///
+ ///
+
+ return !!Sizzle(match[3], elem).length;
+ },
+
+ header: function (elem) {
+ return (/h\d/i).test(elem.nodeName);
+ },
+
+ text: function (elem) {
+ return "text" === elem.type;
+ },
+ radio: function (elem) {
+ return "radio" === elem.type;
+ },
+
+ checkbox: function (elem) {
+ return "checkbox" === elem.type;
+ },
+
+ file: function (elem) {
+ return "file" === elem.type;
+ },
+ password: function (elem) {
+ return "password" === elem.type;
+ },
+
+ submit: function (elem) {
+ return "submit" === elem.type;
+ },
+
+ image: function (elem) {
+ return "image" === elem.type;
+ },
+
+ reset: function (elem) {
+ return "reset" === elem.type;
+ },
+
+ button: function (elem) {
+ return "button" === elem.type || elem.nodeName.toLowerCase() === "button";
+ },
+
+ input: function (elem) {
+ return (/input|select|textarea|button/i).test(elem.nodeName);
+ }
+ },
+ setFilters: {
+ first: function (elem, i) {
+ return i === 0;
+ },
+
+ last: function (elem, i, match, array) {
+ return i === array.length - 1;
+ },
+
+ even: function (elem, i) {
+ return i % 2 === 0;
+ },
+
+ odd: function (elem, i) {
+ return i % 2 === 1;
+ },
+
+ lt: function (elem, i, match) {
+ return i < match[3] - 0;
+ },
+
+ gt: function (elem, i, match) {
+ return i > match[3] - 0;
+ },
+
+ nth: function (elem, i, match) {
+ return match[3] - 0 === i;
+ },
+
+ eq: function (elem, i, match) {
+ return match[3] - 0 === i;
+ }
+ },
+ filter: {
+ PSEUDO: function (elem, match, i, array) {
+ var name = match[1],
+ filter = Expr.filters[name];
+
+ if (filter) {
+ return filter(elem, i, match, array);
+
+ } else if (name === "contains") {
+ return (elem.textContent || elem.innerText || Sizzle.getText([elem]) || "").indexOf(match[3]) >= 0;
+
+ } else if (name === "not") {
+ var not = match[3];
+
+ for (var j = 0, l = not.length; j < l; j++) {
+ if (not[j] === elem) {
+ return false;
+ }
+ }
+
+ return true;
+
+ } else {
+ Sizzle.error("Syntax error, unrecognized expression: " + name);
+ }
+ },
+
+ CHILD: function (elem, match) {
+ var type = match[1],
+ node = elem;
+
+ switch (type) {
+ case "only":
+ case "first":
+ while ((node = node.previousSibling)) {
+ if (node.nodeType === 1) {
+ return false;
+ }
+ }
+
+ if (type === "first") {
+ return true;
+ }
+
+ node = elem;
+
+ case "last":
+ while ((node = node.nextSibling)) {
+ if (node.nodeType === 1) {
+ return false;
+ }
+ }
+
+ return true;
+
+ case "nth":
+ var first = match[2],
+ last = match[3];
+
+ if (first === 1 && last === 0) {
+ return true;
+ }
+
+ var doneName = match[0],
+ parent = elem.parentNode;
+
+ if (parent && (parent.sizcache !== doneName || !elem.nodeIndex)) {
+ var count = 0;
+
+ for (node = parent.firstChild; node; node = node.nextSibling) {
+ if (node.nodeType === 1) {
+ node.nodeIndex = ++count;
+ }
+ }
+
+ parent.sizcache = doneName;
+ }
+
+ var diff = elem.nodeIndex - last;
+
+ if (first === 0) {
+ return diff === 0;
+
+ } else {
+ return (diff % first === 0 && diff / first >= 0);
+ }
+ }
+ },
+
+ ID: function (elem, match) {
+ return elem.nodeType === 1 && elem.getAttribute("id") === match;
+ },
+
+ TAG: function (elem, match) {
+ return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match;
+ },
+
+ CLASS: function (elem, match) {
+ return (" " + (elem.className || elem.getAttribute("class")) + " ")
+ .indexOf(match) > -1;
+ },
+
+ ATTR: function (elem, match) {
+ var name = match[1],
+ result = Expr.attrHandle[name] ?
+ Expr.attrHandle[name](elem) :
+ elem[name] != null ?
+ elem[name] :
+ elem.getAttribute(name),
+ value = result + "",
+ type = match[2],
+ check = match[4];
+
+ return result == null ?
+ type === "!=" :
+ type === "=" ?
+ value === check :
+ type === "*=" ?
+ value.indexOf(check) >= 0 :
+ type === "~=" ?
+ (" " + value + " ").indexOf(check) >= 0 :
+ !check ?
+ value && result !== false :
+ type === "!=" ?
+ value !== check :
+ type === "^=" ?
+ value.indexOf(check) === 0 :
+ type === "$=" ?
+ value.substr(value.length - check.length) === check :
+ type === "|=" ?
+ value === check || value.substr(0, check.length + 1) === check + "-" :
+ false;
+ },
+
+ POS: function (elem, match, i, array) {
+ var name = match[2],
+ filter = Expr.setFilters[name];
+
+ if (filter) {
+ return filter(elem, i, match, array);
+ }
+ }
+ }
+ };
+
+ var origPOS = Expr.match.POS,
+ fescape = function (all, num) {
+ return "\\" + (num - 0 + 1);
+ };
+
+ for (var type in Expr.match) {
+ Expr.match[type] = new RegExp(Expr.match[type].source + (/(?![^\[]*\])(?![^\(]*\))/.source));
+ Expr.leftMatch[type] = new RegExp(/(^(?:.|\r|\n)*?)/.source + Expr.match[type].source.replace(/\\(\d+)/g, fescape));
+ }
+
+ var makeArray = function (array, results) {
+ array = Array.prototype.slice.call(array, 0);
+
+ if (results) {
+ results.push.apply(results, array);
+ return results;
+ }
+
+ return array;
+ };
+
+ // Perform a simple check to determine if the browser is capable of
+ // converting a NodeList to an array using builtin methods.
+ // Also verifies that the returned array holds DOM nodes
+ // (which is not the case in the Blackberry browser)
+ try {
+ Array.prototype.slice.call(document.documentElement.childNodes, 0)[0].nodeType;
+
+ // Provide a fallback method if it does not work
+ } catch (e) {
+ makeArray = function (array, results) {
+ var i = 0,
+ ret = results || [];
+
+ if (toString.call(array) === "[object Array]") {
+ Array.prototype.push.apply(ret, array);
+
+ } else {
+ if (typeof array.length === "number") {
+ for (var l = array.length; i < l; i++) {
+ ret.push(array[i]);
+ }
+
+ } else {
+ for (; array[i]; i++) {
+ ret.push(array[i]);
+ }
+ }
+ }
+
+ return ret;
+ };
+ }
+
+ var sortOrder, siblingCheck;
+
+ if (document.documentElement.compareDocumentPosition) {
+ sortOrder = function (a, b) {
+ if (a === b) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ if (!a.compareDocumentPosition || !b.compareDocumentPosition) {
+ return a.compareDocumentPosition ? -1 : 1;
+ }
+
+ return a.compareDocumentPosition(b) & 4 ? -1 : 1;
+ };
+
+ } else {
+ sortOrder = function (a, b) {
+ var al, bl,
+ ap = [],
+ bp = [],
+ aup = a.parentNode,
+ bup = b.parentNode,
+ cur = aup;
+
+ // The nodes are identical, we can exit early
+ if (a === b) {
+ hasDuplicate = true;
+ return 0;
+
+ // If the nodes are siblings (or identical) we can do a quick check
+ } else if (aup === bup) {
+ return siblingCheck(a, b);
+
+ // If no parents were found then the nodes are disconnected
+ } else if (!aup) {
+ return -1;
+
+ } else if (!bup) {
+ return 1;
+ }
+
+ // Otherwise they're somewhere else in the tree so we need
+ // to build up a full list of the parentNodes for comparison
+ while (cur) {
+ ap.unshift(cur);
+ cur = cur.parentNode;
+ }
+
+ cur = bup;
+
+ while (cur) {
+ bp.unshift(cur);
+ cur = cur.parentNode;
+ }
+
+ al = ap.length;
+ bl = bp.length;
+
+ // Start walking down the tree looking for a discrepancy
+ for (var i = 0; i < al && i < bl; i++) {
+ if (ap[i] !== bp[i]) {
+ return siblingCheck(ap[i], bp[i]);
+ }
+ }
+
+ // We ended someplace up the tree so do a sibling check
+ return i === al ?
+ siblingCheck(a, bp[i], -1) :
+ siblingCheck(ap[i], b, 1);
+ };
+
+ siblingCheck = function (a, b, ret) {
+ if (a === b) {
+ return ret;
+ }
+
+ var cur = a.nextSibling;
+
+ while (cur) {
+ if (cur === b) {
+ return -1;
+ }
+
+ cur = cur.nextSibling;
+ }
+
+ return 1;
+ };
+ }
+
+ // Utility function for retreiving the text value of an array of DOM nodes
+ Sizzle.getText = function (elems) {
+ var ret = "", elem;
+
+ for (var i = 0; elems[i]; i++) {
+ elem = elems[i];
+
+ // Get the text from text nodes and CDATA nodes
+ if (elem.nodeType === 3 || elem.nodeType === 4) {
+ ret += elem.nodeValue;
+
+ // Traverse everything else, except comment nodes
+ } else if (elem.nodeType !== 8) {
+ ret += Sizzle.getText(elem.childNodes);
+ }
+ }
+
+ return ret;
+ };
+
+ // [vsdoc] The following function has been modified for IntelliSense.
+ // Check to see if the browser returns elements by name when
+ // querying by getElementById (and provide a workaround)
+ (function () {
+ // We're going to inject a fake input element with a specified name
+ // var form = document.createElement("div"),
+ // id = "script" + (new Date()).getTime(),
+ // root = document.documentElement;
+
+ // form.innerHTML = "";
+
+ // // Inject it into the root element, check its status, and remove it quickly
+ // root.insertBefore( form, root.firstChild );
+
+ // // The workaround has to do additional checks after a getElementById
+ // // Which slows things down for other browsers (hence the branching)
+ // if ( document.getElementById( id ) ) {
+ Expr.find.ID = function (match, context, isXML) {
+ if (typeof context.getElementById !== "undefined" && !isXML) {
+ var m = context.getElementById(match[1]);
+
+ return m ?
+ m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
+ [m] :
+ undefined :
+ [];
+ }
+ };
+
+ Expr.filter.ID = function (elem, match) {
+ var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+
+ return elem.nodeType === 1 && node && node.nodeValue === match;
+ };
+ // }
+
+ // root.removeChild( form );
+
+ // release memory in IE
+ root = form = null;
+ })();
+
+ // [vsdoc] The following function has been modified for IntelliSense.
+ (function () {
+ // Check to see if the browser returns only elements
+ // when doing getElementsByTagName("*")
+
+ // Create a fake element
+ // var div = document.createElement("div");
+ // div.appendChild( document.createComment("") );
+
+ // Make sure no comments are found
+ // if ( div.getElementsByTagName("*").length > 0 ) {
+ Expr.find.TAG = function (match, context) {
+ var results = context.getElementsByTagName(match[1]);
+
+ // Filter out possible comments
+ if (match[1] === "*") {
+ var tmp = [];
+
+ for (var i = 0; results[i]; i++) {
+ if (results[i].nodeType === 1) {
+ tmp.push(results[i]);
+ }
+ }
+
+ results = tmp;
+ }
+
+ return results;
+ };
+ // }
+
+ // Check to see if an attribute returns normalized href attributes
+ // div.innerHTML = "";
+
+ // if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
+ // div.firstChild.getAttribute("href") !== "#" ) {
+
+ // Expr.attrHandle.href = function( elem ) {
+ // return elem.getAttribute( "href", 2 );
+ // };
+ // }
+
+ // release memory in IE
+ div = null;
+ })();
+
+ if (document.querySelectorAll) {
+ (function () {
+ var oldSizzle = Sizzle,
+ div = document.createElement("div"),
+ id = "__sizzle__";
+
+ div.innerHTML = "";
+
+ // Safari can't handle uppercase or unicode characters when
+ // in quirks mode.
+ if (div.querySelectorAll && div.querySelectorAll(".TEST").length === 0) {
+ return;
+ }
+
+ Sizzle = function (query, context, extra, seed) {
+ context = context || document;
+
+ // Make sure that attribute selectors are quoted
+ query = query.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
+
+ // Only use querySelectorAll on non-XML documents
+ // (ID selectors don't work in non-HTML documents)
+ if (!seed && !Sizzle.isXML(context)) {
+ if (context.nodeType === 9) {
+ try {
+ return makeArray(context.querySelectorAll(query), extra);
+ } catch (qsaError) { }
+
+ // qSA works strangely on Element-rooted queries
+ // We can work around this by specifying an extra ID on the root
+ // and working up from there (Thanks to Andrew Dupont for the technique)
+ // IE 8 doesn't work on object elements
+ } else if (context.nodeType === 1 && context.nodeName.toLowerCase() !== "object") {
+ var old = context.getAttribute("id"),
+ nid = old || id;
+
+ if (!old) {
+ context.setAttribute("id", nid);
+ }
+
+ try {
+ return makeArray(context.querySelectorAll("#" + nid + " " + query), extra);
+
+ } catch (pseudoError) {
+ } finally {
+ if (!old) {
+ context.removeAttribute("id");
+ }
+ }
+ }
+ }
+
+ return oldSizzle(query, context, extra, seed);
+ };
+
+ for (var prop in oldSizzle) {
+ Sizzle[prop] = oldSizzle[prop];
+ }
+
+ // release memory in IE
+ div = null;
+ })();
+ }
+
+ (function () {
+ var html = document.documentElement,
+ matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector,
+ pseudoWorks = false;
+
+ try {
+ // This should fail with an exception
+ // Gecko does not error, returns false instead
+ matches.call(document.documentElement, "[test!='']:sizzle");
+
+ } catch (pseudoError) {
+ pseudoWorks = true;
+ }
+
+ if (matches) {
+ Sizzle.matchesSelector = function (node, expr) {
+ // Make sure that attribute selectors are quoted
+ expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
+
+ if (!Sizzle.isXML(node)) {
+ try {
+ if (pseudoWorks || !Expr.match.PSEUDO.test(expr) && !/!=/.test(expr)) {
+ return matches.call(node, expr);
+ }
+ } catch (e) { }
+ }
+
+ return Sizzle(expr, null, null, [node]).length > 0;
+ };
+ }
+ })();
+
+ (function () {
+ var div = document.createElement("div");
+
+ div.innerHTML = "";
+
+ // Opera can't find a second classname (in 9.6)
+ // Also, make sure that getElementsByClassName actually exists
+ if (!div.getElementsByClassName || div.getElementsByClassName("e").length === 0) {
+ return;
+ }
+
+ // Safari caches class attributes, doesn't catch changes (in 3.2)
+ div.lastChild.className = "e";
+
+ if (div.getElementsByClassName("e").length === 1) {
+ return;
+ }
+
+ Expr.order.splice(1, 0, "CLASS");
+ Expr.find.CLASS = function (match, context, isXML) {
+ if (typeof context.getElementsByClassName !== "undefined" && !isXML) {
+ return context.getElementsByClassName(match[1]);
+ }
+ };
+
+ // release memory in IE
+ div = null;
+ })();
+
+ function dirNodeCheck(dir, cur, doneName, checkSet, nodeCheck, isXML) {
+ for (var i = 0, l = checkSet.length; i < l; i++) {
+ var elem = checkSet[i];
+
+ if (elem) {
+ var match = false;
+
+ elem = elem[dir];
+
+ while (elem) {
+ if (elem.sizcache === doneName) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if (elem.nodeType === 1 && !isXML) {
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+
+ if (elem.nodeName.toLowerCase() === cur) {
+ match = elem;
+ break;
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+ }
+
+ function dirCheck(dir, cur, doneName, checkSet, nodeCheck, isXML) {
+ for (var i = 0, l = checkSet.length; i < l; i++) {
+ var elem = checkSet[i];
+
+ if (elem) {
+ var match = false;
+
+ elem = elem[dir];
+
+ while (elem) {
+ if (elem.sizcache === doneName) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if (elem.nodeType === 1) {
+ if (!isXML) {
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+
+ if (typeof cur !== "string") {
+ if (elem === cur) {
+ match = true;
+ break;
+ }
+
+ } else if (Sizzle.filter(cur, [elem]).length > 0) {
+ match = elem;
+ break;
+ }
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+ }
+
+ if (document.documentElement.contains) {
+ Sizzle.contains = function (a, b) {
+ ///
+ ///
Check to see if a DOM node is within another DOM node.
+ ///
+ ///
+ ///
The DOM element that may contain the other element.
+ ///
+ ///
+ ///
The DOM node that may be contained by the other element.
+ ///
+ ///
+
+ return a !== b && (a.contains ? a.contains(b) : true);
+ };
+
+ } else if (document.documentElement.compareDocumentPosition) {
+ Sizzle.contains = function (a, b) {
+ ///
+ ///
Check to see if a DOM node is within another DOM node.
+ ///
+ ///
+ ///
The DOM element that may contain the other element.
+ ///
+ ///
+ ///
The DOM node that may be contained by the other element.
+ ///
+ ///
+
+ return !!(a.compareDocumentPosition(b) & 16);
+ };
+
+ } else {
+ Sizzle.contains = function () {
+ return false;
+ };
+ }
+
+ Sizzle.isXML = function (elem) {
+ ///
+ ///
Determines if the parameter passed is an XML document.
+ ///
+ /// The object to test
+ /// True if the parameter is an XML document; otherwise false.
+
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
+
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+ };
+
+ var posProcess = function (selector, context) {
+ var match,
+ tmpSet = [],
+ later = "",
+ root = context.nodeType ? [context] : context;
+
+ // Position selectors must be done after the filter
+ // And so must :not(positional) so we move all PSEUDOs to the end
+ while ((match = Expr.match.PSEUDO.exec(selector))) {
+ later += match[0];
+ selector = selector.replace(Expr.match.PSEUDO, "");
+ }
+
+ selector = Expr.relative[selector] ? selector + "*" : selector;
+
+ for (var i = 0, l = root.length; i < l; i++) {
+ Sizzle(selector, root[i], tmpSet);
+ }
+
+ return Sizzle.filter(later, tmpSet);
+ };
+
+ // EXPOSE
+ jQuery.find = Sizzle;
+ jQuery.expr = Sizzle.selectors;
+ jQuery.expr[":"] = jQuery.expr.filters;
+ jQuery.unique = Sizzle.uniqueSort;
+ jQuery.text = Sizzle.getText;
+ jQuery.isXMLDoc = Sizzle.isXML;
+ jQuery.contains = Sizzle.contains;
+
+
+ })();
+
+
+ var runtil = /Until$/,
+ rparentsprev = /^(?:parents|prevUntil|prevAll)/,
+ // Note: This RegExp should be improved, or likely pulled from Sizzle
+ rmultiselector = /,/,
+ isSimple = /^.[^:#\[\.,]*$/,
+ slice = Array.prototype.slice,
+ POS = jQuery.expr.match.POS;
+
+ jQuery.fn.extend({
+ find: function (selector) {
+ ///
+ ///
Searches for all elements that match the specified expression.
+ ///
This method is a good way to find additional descendant
+ ///
elements with which to process.
+ ///
All searching is done using a jQuery expression. The expression can be
+ ///
written using CSS 1-3 Selector syntax, or basic XPath.
+ ///
Part of DOM/Traversing
+ ///
+ ///
+ ///
+ ///
An expression to search with.
+ ///
+ ///
+
+ var ret = this.pushStack("", "find", selector),
+ length = 0;
+
+ for (var i = 0, l = this.length; i < l; i++) {
+ length = ret.length;
+ jQuery.find(selector, this[i], ret);
+
+ if (i > 0) {
+ // Make sure that the results are unique
+ for (var n = length; n < ret.length; n++) {
+ for (var r = 0; r < length; r++) {
+ if (ret[r] === ret[n]) {
+ ret.splice(n--, 1);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ return ret;
+ },
+
+ has: function (target) {
+ ///
+ ///
Reduce the set of matched elements to those that have a descendant that matches the
+ ///
selector or DOM element.
+ ///
+ ///
+ ///
A string containing a selector expression to match elements against.
+ ///
+ ///
+
+ var targets = jQuery(target);
+ return this.filter(function () {
+ for (var i = 0, l = targets.length; i < l; i++) {
+ if (jQuery.contains(this, targets[i])) {
+ return true;
+ }
+ }
+ });
+ },
+
+ not: function (selector) {
+ ///
+ ///
Removes any elements inside the array of elements from the set
+ ///
of matched elements. This method is used to remove one or more
+ ///
elements from a jQuery object.
+ ///
Part of DOM/Traversing
+ ///
+ ///
+ ///
A set of elements to remove from the jQuery set of matched elements.
+ ///
+ ///
+
+ return this.pushStack(winnow(this, selector, false), "not", selector);
+ },
+
+ filter: function (selector) {
+ ///
+ ///
Removes all elements from the set of matched elements that do not
+ ///
pass the specified filter. This method is used to narrow down
+ ///
the results of a search.
+ ///
})
+ ///
Part of DOM/Traversing
+ ///
+ ///
+ ///
+ ///
A function to use for filtering
+ ///
+ ///
+
+ return this.pushStack(winnow(this, selector, true), "filter", selector);
+ },
+
+ is: function (selector) {
+ ///
+ ///
Checks the current selection against an expression and returns true,
+ ///
if at least one element of the selection fits the given expression.
+ ///
Does return false, if no element fits or the expression is not valid.
+ ///
filter(String) is used internally, therefore all rules that apply there
+ ///
apply here, too.
+ ///
Part of DOM/Traversing
+ ///
+ ///
+ ///
+ ///
The expression with which to filter
+ ///
+
+ return !!selector && jQuery.filter(selector, this).length > 0;
+ },
+
+ closest: function (selectors, context) {
+ ///
+ ///
Get a set of elements containing the closest parent element that matches the specified selector, the starting element included.
+ ///
+ ///
+ ///
A string containing a selector expression to match elements against.
+ ///
+ ///
+ ///
A DOM element within which a matching element may be found. If no context is passed
+ ///
in then the context of the jQuery set will be used instead.
+ ///
+ ///
+
+ var ret = [], i, l, cur = this[0];
+
+ if (jQuery.isArray(selectors)) {
+ var match, selector,
+ matches = {},
+ level = 1;
+
+ if (cur && selectors.length) {
+ for (i = 0, l = selectors.length; i < l; i++) {
+ selector = selectors[i];
+
+ if (!matches[selector]) {
+ matches[selector] = jQuery.expr.match.POS.test(selector) ?
+ jQuery(selector, context || this.context) :
+ selector;
+ }
+ }
+
+ while (cur && cur.ownerDocument && cur !== context) {
+ for (selector in matches) {
+ match = matches[selector];
+
+ if (match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match)) {
+ ret.push({ selector: selector, elem: cur, level: level });
+ }
+ }
+
+ cur = cur.parentNode;
+ level++;
+ }
+ }
+
+ return ret;
+ }
+
+ var pos = POS.test(selectors) ?
+ jQuery(selectors, context || this.context) : null;
+
+ for (i = 0, l = this.length; i < l; i++) {
+ cur = this[i];
+
+ while (cur) {
+ if (pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors)) {
+ ret.push(cur);
+ break;
+
+ } else {
+ cur = cur.parentNode;
+ if (!cur || !cur.ownerDocument || cur === context) {
+ break;
+ }
+ }
+ }
+ }
+
+ ret = ret.length > 1 ? jQuery.unique(ret) : ret;
+
+ return this.pushStack(ret, "closest", selectors);
+ },
+
+ // Determine the position of an element within
+ // the matched set of elements
+ index: function (elem) {
+ ///
+ ///
Searches every matched element for the object and returns
+ ///
the index of the element, if found, starting with zero.
+ ///
Returns -1 if the object wasn't found.
+ ///
Part of Core
+ ///
+ ///
+ ///
+ ///
Object to search for
+ ///
+
+ if (!elem || typeof elem === "string") {
+ return jQuery.inArray(this[0],
+ // If it receives a string, the selector is used
+ // If it receives nothing, the siblings are used
+ elem ? jQuery(elem) : this.parent().children());
+ }
+ // Locate the position of the desired element
+ return jQuery.inArray(
+ // If it receives a jQuery object, the first element is used
+ elem.jquery ? elem[0] : elem, this);
+ },
+
+ add: function (selector, context) {
+ ///
+ ///
Adds one or more Elements to the set of matched elements.
+ ///
Part of DOM/Traversing
+ ///
+ ///
+ ///
A string containing a selector expression to match additional elements against.
+ ///
+ ///
+ ///
Add some elements rooted against the specified context.
+ ///
+ ///
+
+ var set = typeof selector === "string" ?
+ jQuery(selector, context || this.context) :
+ jQuery.makeArray(selector),
+ all = jQuery.merge(this.get(), set);
+
+ return this.pushStack(isDisconnected(set[0]) || isDisconnected(all[0]) ?
+ all :
+ jQuery.unique(all));
+ },
+
+ andSelf: function () {
+ ///
+ ///
Adds the previous selection to the current selection.
+ ///
+ ///
+
+ return this.add(this.prevObject);
+ }
+ });
+
+ // A painfully simple check to see if an element is disconnected
+ // from a document (should be improved, where feasible).
+ function isDisconnected(node) {
+ return !node || !node.parentNode || node.parentNode.nodeType === 11;
+ }
+
+ jQuery.fn.parents = function (until, selector) {
+ ///
+ /// Get the ancestors of each element in the current set of matched elements, optionally filtered by a selector.
+ ///
+ ///
+ /// A string containing a selector expression to match elements against.
+ ///
+ ///
+ return jQuery.dir(elem, "parentNode");
+ };
+
+ jQuery.fn.parentsUntil = function (until, selector) {
+ ///
+ /// Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector.
+ ///
+ ///
+ /// A string containing a selector expression to indicate where to stop matching ancestor elements.
+ ///
+ ///
+ return jQuery.dir(elem, "parentNode", until);
+ };
+
+ jQuery.each({
+ parent: function (elem) {
+ var parent = elem.parentNode;
+ return parent && parent.nodeType !== 11 ? parent : null;
+ },
+ next: function (elem) {
+ return jQuery.nth(elem, 2, "nextSibling");
+ },
+ prev: function (elem) {
+ return jQuery.nth(elem, 2, "previousSibling");
+ },
+ nextAll: function (elem) {
+ return jQuery.dir(elem, "nextSibling");
+ },
+ prevAll: function (elem) {
+ return jQuery.dir(elem, "previousSibling");
+ },
+ nextUntil: function (elem, i, until) {
+ ///
+ ///
Get all following siblings of each element up to but not including the element matched
+ ///
by the selector.
+ ///
+ ///
+ ///
A string containing a selector expression to indicate where to stop matching following
+ ///
sibling elements.
+ ///
+ ///
+
+ return jQuery.dir(elem, "nextSibling", until);
+ },
+ prevUntil: function (elem, i, until) {
+ ///
+ ///
Get all preceding siblings of each element up to but not including the element matched
+ ///
by the selector.
+ ///
+ ///
+ ///
A string containing a selector expression to indicate where to stop matching preceding
+ ///
sibling elements.
+ ///
+ ///
+
+ return jQuery.dir(elem, "previousSibling", until);
+ },
+ siblings: function (elem) {
+ return jQuery.sibling(elem.parentNode.firstChild, elem);
+ },
+ children: function (elem) {
+ return jQuery.sibling(elem.firstChild);
+ },
+ contents: function (elem) {
+ return jQuery.nodeName(elem, "iframe") ?
+ elem.contentDocument || elem.contentWindow.document :
+ jQuery.makeArray(elem.childNodes);
+ }
+ }, function (name, fn) {
+ jQuery.fn[name] = function (until, selector) {
+ var ret = jQuery.map(this, fn, until);
+
+ if (!runtil.test(name)) {
+ selector = until;
+ }
+
+ if (selector && typeof selector === "string") {
+ ret = jQuery.filter(selector, ret);
+ }
+
+ ret = this.length > 1 ? jQuery.unique(ret) : ret;
+
+ if ((this.length > 1 || rmultiselector.test(selector)) && rparentsprev.test(name)) {
+ ret = ret.reverse();
+ }
+
+ return this.pushStack(ret, name, slice.call(arguments).join(","));
+ };
+ });
+
+ jQuery.extend({
+ filter: function (expr, elems, not) {
+ if (not) {
+ expr = ":not(" + expr + ")";
+ }
+
+ return elems.length === 1 ?
+ jQuery.find.matchesSelector(elems[0], expr) ? [elems[0]] : [] :
+ jQuery.find.matches(expr, elems);
+ },
+
+ dir: function (elem, dir, until) {
+ ///
+ ///
This member is internal only.
+ ///
+ ///
+
+ var matched = [],
+ cur = elem[dir];
+
+ while (cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery(cur).is(until))) {
+ if (cur.nodeType === 1) {
+ matched.push(cur);
+ }
+ cur = cur[dir];
+ }
+ return matched;
+ },
+
+ nth: function (cur, result, dir, elem) {
+ ///
+ ///
This member is internal only.
+ ///
+ ///
+
+ result = result || 1;
+ var num = 0;
+
+ for (; cur; cur = cur[dir]) {
+ if (cur.nodeType === 1 && ++num === result) {
+ break;
+ }
+ }
+
+ return cur;
+ },
+
+ sibling: function (n, elem) {
+ ///
+ ///
This member is internal only.
+ ///
+ ///
+
+ var r = [];
+
+ for (; n; n = n.nextSibling) {
+ if (n.nodeType === 1 && n !== elem) {
+ r.push(n);
+ }
+ }
+
+ return r;
+ }
+ });
+
+ // Implement the identical functionality for filter and not
+ function winnow(elements, qualifier, keep) {
+ if (jQuery.isFunction(qualifier)) {
+ return jQuery.grep(elements, function (elem, i) {
+ var retVal = !!qualifier.call(elem, i, elem);
+ return retVal === keep;
+ });
+
+ } else if (qualifier.nodeType) {
+ return jQuery.grep(elements, function (elem, i) {
+ return (elem === qualifier) === keep;
+ });
+
+ } else if (typeof qualifier === "string") {
+ var filtered = jQuery.grep(elements, function (elem) {
+ return elem.nodeType === 1;
+ });
+
+ if (isSimple.test(qualifier)) {
+ return jQuery.filter(qualifier, filtered, !keep);
+ } else {
+ qualifier = jQuery.filter(qualifier, filtered);
+ }
+ }
+
+ return jQuery.grep(elements, function (elem, i) {
+ return (jQuery.inArray(elem, qualifier) >= 0) === keep;
+ });
+ }
+
+
+
+
+ var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
+ rleadingWhitespace = /^\s+/,
+ rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
+ rtagName = /<([\w:]+)/,
+ rtbody = /\s]+\/)>/g,
+ wrapMap = {
+ option: [1, ""],
+ legend: [1, ""],
+ thead: [1, "
", "
"],
+ tr: [2, "
", "
"],
+ td: [3, "
", "
"],
+ col: [2, "
", "
"],
+ area: [1, ""],
+ _default: [0, "", ""]
+ };
+
+ wrapMap.optgroup = wrapMap.option;
+ wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+ wrapMap.th = wrapMap.td;
+
+ // IE can't serialize and ");
+ };
+
+ if (jQueryTmplVersion > 0) {
+ jQuery['tmpl']['tag']['ko_code'] = {
+ open: "__.push($1 || '');"
+ };
+ jQuery['tmpl']['tag']['ko_with'] = {
+ open: "with($1) {",
+ close: "} "
+ };
+ }
+ };
+
+ ko.jqueryTmplTemplateEngine.prototype = new ko.templateEngine();
+
+ // Use this one by default *only if jquery.tmpl is referenced*
+ var jqueryTmplTemplateEngineInstance = new ko.jqueryTmplTemplateEngine();
+ if (jqueryTmplTemplateEngineInstance.jQueryTmplVersion > 0)
+ ko.setTemplateEngine(jqueryTmplTemplateEngineInstance);
+
+ ko.exportSymbol('ko.jqueryTmplTemplateEngine', ko.jqueryTmplTemplateEngine);
+})();})(window);
diff --git a/TeamGrade.Web/Scripts/knockout-2.0.0.js b/TeamGrade.Web/Scripts/knockout-2.0.0.js
new file mode 100644
index 0000000..d78d45e
--- /dev/null
+++ b/TeamGrade.Web/Scripts/knockout-2.0.0.js
@@ -0,0 +1,129 @@
+/*!
+* Note: While Microsoft is not the author of this script file, Microsoft
+* grants you the right to use this file for the sole purpose of either:
+* (i) interacting through your browser with the Microsoft website, subject
+* to the website's terms of use; or (ii) using the files as included with a
+* Microsoft product subject to the Microsoft Software License Terms for that
+* Microsoft product. Microsoft reserves all other rights to the files not
+* expressly granted by Microsoft, whether by implication, estoppel or
+* otherwise. The notices and licenses below are for informational purposes
+* only.
+*
+* Provided for Informational Purposes Only
+* MIT License
+*
+* Permission is hereby granted, free of charge, to any person obtaining a
+* copy of this software and associated documentation files (the "Software"),
+* to deal in the Software without restriction, including without limitation
+* the rights to use, copy, modify, merge, publish, distribute, sublicense,
+* and/or sell copies of the Software, and to permit persons to whom the
+* Software is furnished to do so, subject to the following conditions:
+*
+* The copyright notice and this permission notice shall be included in all
+* copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+* DEALINGS IN THE SOFTWARE.
+*/
+// Knockout JavaScript library v2.0.0
+// (c) Steven Sanderson - http://knockoutjs.com/
+// License: MIT (http://www.opensource.org/licenses/mit-license.php)
+
+(function(window,undefined){
+function c(a){throw a;}var l=void 0,m=!0,o=null,p=!1,r=window.ko={};r.b=function(a,b){for(var d=a.split("."),e=window,f=0;f",b[0];);return 4r.a.k(e,a[b])&&e.push(a[b]);return e},ba:function(a,e){for(var a=a||[],b=[],f=0,d=a.length;fa.length?p:a.substring(0,e.length)===e},hb:function(a){for(var e=Array.prototype.slice.call(arguments,1),b="return ("+a+")",f=0;f",""]||!d.indexOf("
+
\ No newline at end of file
diff --git a/TeamGrade.Web/Views/Home/Index.cshtml b/TeamGrade.Web/Views/Home/Index.cshtml
new file mode 100644
index 0000000..551ff6d
--- /dev/null
+++ b/TeamGrade.Web/Views/Home/Index.cshtml
@@ -0,0 +1,73 @@
+@{
+ ViewBag.Title = "Home Page";
+}
+
+@section featured {
+
+
+
+
@ViewBag.Title.
+
@ViewBag.Message
+
+
+ To learn more about ASP.NET MVC visit http://asp.net/mvc.
+ The page features videos, tutorials, and samples to help you get the most from
+ ASP.NET MVC. If you have any questions about ASP.NET MVC visit
+ our forums.
+
+
+
+}
+
+
We suggest the following:
+
+
+
+
Configure ASP.NET Membership
+ ASP.NET membership gives you a built-in way to create, store, and
+ validate user credentials (authentication). By default, membership works with a local instance of SQL Server,
+ but you can configure it to use another database.
+
+
+
Add NuGet packages and jump start your coding
+ NuGet makes it easy to install and update free libraries and tools in Visual Studio. In Solution Explorer,
+ right-click the References node, select Manage NuGet Packages, and then pick from the extensive
+ list of packages.
+
+
+
Setup deployment to your web server
+ Use Microsoft Web Deploy to quickly and easily publish your application to a web server.
+ In Solution Explorer, right-click your project, select Publish,
+ and choose one of the many options to get your code deployed and running on the web.
+
+
+
+
+
+
+
Home of ASP.NET
+
+ ASP.NET is a free, fully supported Web application framework that helps you create standards-based web solutions.
+ Whether you're new to ASP.NET or an experienced developer, the ASP.NET website
+ is your source for news, training, downloads, and support.
+
+
+
+
+
NuGet Gallery
+
+ NuGet is a Visual Studio extension that makes it easy to install and update open source libraries and tools in
+ Visual Studio. To see available packages, visit the NuGet gallery.
+ You can also develop your own package and share it in the gallery.
+
+
+
+
+
Find Web Hosting
+
+ You can easily find a web hosting company that offers the right mix of features and price for your applications.
+ Visit Microsoft.com/web to
+ explore offerings from many providers.
+
+
+
\ No newline at end of file
diff --git a/TeamGrade.Web/Views/Shared/Error.cshtml b/TeamGrade.Web/Views/Shared/Error.cshtml
new file mode 100644
index 0000000..db7c8b8
--- /dev/null
+++ b/TeamGrade.Web/Views/Shared/Error.cshtml
@@ -0,0 +1,10 @@
+@model System.Web.Mvc.HandleErrorInfo
+
+@{
+ ViewBag.Title = "Error";
+}
+
+
+
Error.
+
An error occurred while processing your request.
+
diff --git a/TeamGrade.Web/Views/Shared/_Layout.cshtml b/TeamGrade.Web/Views/Shared/_Layout.cshtml
new file mode 100644
index 0000000..22c5ba0
--- /dev/null
+++ b/TeamGrade.Web/Views/Shared/_Layout.cshtml
@@ -0,0 +1,52 @@
+
+
+
+
+ @ViewBag.Title - My ASP.NET MVC Application
+
+
+
+
+
+
+
+
+
+
+
@Html.ActionLink("your logo here.", "Index", "Home")
@Html.ActionLink("Register", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink", data_dialog_title = "Registration" })
+
@Html.ActionLink("Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink", data_dialog_title = "Identification" })
+
+}
\ No newline at end of file
diff --git a/TeamGrade.Web/Views/Web.config b/TeamGrade.Web/Views/Web.config
new file mode 100644
index 0000000..826ce19
--- /dev/null
+++ b/TeamGrade.Web/Views/Web.config
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/TeamGrade.Web/Views/_ViewStart.cshtml b/TeamGrade.Web/Views/_ViewStart.cshtml
new file mode 100644
index 0000000..efda124
--- /dev/null
+++ b/TeamGrade.Web/Views/_ViewStart.cshtml
@@ -0,0 +1,3 @@
+@{
+ Layout = "~/Views/Shared/_Layout.cshtml";
+}
\ No newline at end of file
diff --git a/TeamGrade.Web/Web.Debug.config b/TeamGrade.Web/Web.Debug.config
new file mode 100644
index 0000000..3e2a97c
--- /dev/null
+++ b/TeamGrade.Web/Web.Debug.config
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TeamGrade.Web/Web.Release.config b/TeamGrade.Web/Web.Release.config
new file mode 100644
index 0000000..9fd481f
--- /dev/null
+++ b/TeamGrade.Web/Web.Release.config
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TeamGrade.Web/Web.config b/TeamGrade.Web/Web.config
new file mode 100644
index 0000000..0a95596
--- /dev/null
+++ b/TeamGrade.Web/Web.config
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TeamGrade.Web/favicon.ico b/TeamGrade.Web/favicon.ico
new file mode 100644
index 0000000..a3a7999
Binary files /dev/null and b/TeamGrade.Web/favicon.ico differ
diff --git a/TeamGrade.Web/packages.config b/TeamGrade.Web/packages.config
new file mode 100644
index 0000000..282e196
--- /dev/null
+++ b/TeamGrade.Web/packages.config
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/AspNetMvc.4.0.20126.16343/AspNetMvc.4.0.20126.16343.nupkg b/packages/AspNetMvc.4.0.20126.16343/AspNetMvc.4.0.20126.16343.nupkg
new file mode 100644
index 0000000..a15481d
Binary files /dev/null and b/packages/AspNetMvc.4.0.20126.16343/AspNetMvc.4.0.20126.16343.nupkg differ
diff --git a/packages/AspNetMvc.4.0.20126.16343/lib/net40/System.Web.Mvc.dll b/packages/AspNetMvc.4.0.20126.16343/lib/net40/System.Web.Mvc.dll
new file mode 100644
index 0000000..60aa8c6
Binary files /dev/null and b/packages/AspNetMvc.4.0.20126.16343/lib/net40/System.Web.Mvc.dll differ
diff --git a/packages/AspNetMvc.4.0.20126.16343/lib/net40/System.Web.Mvc.xml b/packages/AspNetMvc.4.0.20126.16343/lib/net40/System.Web.Mvc.xml
new file mode 100644
index 0000000..c4183fb
--- /dev/null
+++ b/packages/AspNetMvc.4.0.20126.16343/lib/net40/System.Web.Mvc.xml
@@ -0,0 +1,9412 @@
+
+
+
+ System.Web.Mvc
+
+
+
+ Represents an attribute that specifies which HTTP verbs an action method will respond to.
+
+
+ Initializes a new instance of the class by using a list of HTTP verbs that the action method will respond to.
+ The HTTP verbs that the action method will respond to.
+ The parameter is null or zero length.
+
+
+ Initializes a new instance of the class using the HTTP verbs that the action method will respond to.
+ The HTTP verbs that the action method will respond to.
+
+
+ Determines whether the specified method information is valid for the specified controller context.
+ true if the method information is valid; otherwise, false.
+ The controller context.
+ The method information.
+ The parameter is null.
+
+
+ Gets or sets the list of HTTP verbs that the action method will respond to.
+ The list of HTTP verbs that the action method will respond to.
+
+
+ Provides information about an action method, such as its name, controller, parameters, attributes, and filters.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the name of the action method.
+ The name of the action method.
+
+
+ Gets the controller descriptor.
+ The controller descriptor.
+
+
+ Executes the action method by using the specified parameters and controller context.
+ The result of executing the action method.
+ The controller context.
+ The parameters of the action method.
+
+
+ Returns an array of custom attributes that are defined for this member, excluding named attributes.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+ The custom attribute type cannot be loaded.
+ There is more than one attribute of type defined for this member.
+
+
+ Returns an array of custom attributes that are defined for this member, identified by type.
+ An array of custom attributes, or an empty array if no custom attributes of the specified type exist.
+ The type of the custom attributes.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+ The custom attribute type cannot be loaded.
+ There is more than one attribute of type defined for this member.
+ The parameter is null.
+
+
+
+ Returns the filters that are associated with this action method.
+ The filters that are associated with this action method.
+
+
+ Returns the parameters of the action method.
+ The parameters of the action method.
+
+
+ Returns the action-method selectors.
+ The action-method selectors.
+
+
+ Determines whether one or more instances of the specified attribute type are defined for this member.
+ true if is defined for this member; otherwise, false.
+ The type of the custom attribute.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+ The parameter is null.
+
+
+ Gets the unique ID for the action descriptor using lazy initialization.
+ The unique ID.
+
+
+ Provides the context for the ActionExecuted method of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The controller context.
+ The action method descriptor.
+ true if the action is canceled.
+ The exception object.
+ The parameter is null.
+
+
+ Gets or sets the action descriptor.
+ The action descriptor.
+
+
+ Gets or sets a value that indicates that this object is canceled.
+ true if the context canceled; otherwise, false.
+
+
+ Gets or sets the exception that occurred during the execution of the action method, if any.
+ The exception that occurred during the execution of the action method.
+
+
+ Gets or sets a value that indicates whether the exception is handled.
+ true if the exception is handled; otherwise, false.
+
+
+ Gets or sets the result returned by the action method.
+ The result returned by the action method.
+
+
+ Provides the context for the ActionExecuting method of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using the specified controller context, action descriptor, and action-method parameters.
+ The controller context.
+ The action descriptor.
+ The action-method parameters.
+ The or parameter is null.
+
+
+ Gets or sets the action descriptor.
+ The action descriptor.
+
+
+ Gets or sets the action-method parameters.
+ The action-method parameters.
+
+
+ Gets or sets the result that is returned by the action method.
+ The result that is returned by the action method.
+
+
+ Represents the base class for filter attributes.
+
+
+ Initializes a new instance of the class.
+
+
+ Called by the ASP.NET MVC framework after the action method executes.
+ The filter context.
+
+
+ Called by the ASP.NET MVC framework before the action method executes.
+ The filter context.
+
+
+ Called by the ASP.NET MVC framework after the action result executes.
+ The filter context.
+
+
+ Called by the ASP.NET MVC framework before the action result executes.
+ The filter context.
+
+
+ Represents an attribute that is used to influence the selection of an action method.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether the action method selection is valid for the specified controller context.
+ true if the action method selection is valid for the specified controller context; otherwise, false.
+ The controller context.
+ Information about the action method.
+
+
+ Represents an attribute that is used for the name of an action.
+
+
+ Initializes a new instance of the class.
+ Name of the action.
+ The parameter is null or empty.
+
+
+ Determines whether the action name is valid within the specified controller context.
+ true if the action name is valid within the specified controller context; otherwise, false.
+ The controller context.
+ The name of the action.
+ Information about the action method.
+
+
+ Gets or sets the name of the action.
+ The name of the action.
+
+
+ Represents an attribute that affects the selection of an action method.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether the action name is valid in the specified controller context.
+ true if the action name is valid in the specified controller context; otherwise, false.
+ The controller context.
+ The name of the action.
+ Information about the action method.
+
+
+ Encapsulates the result of an action method and is used to perform a framework-level operation on behalf of the action method.
+
+
+ Initializes a new instance of the class.
+
+
+ Enables processing of the result of an action method by a custom type that inherits from the class.
+ The context in which the result is executed. The context information includes the controller, HTTP content, request context, and route data.
+
+
+ Represents a delegate that contains the logic for selecting an action method.
+ true if an action method was successfully selected; otherwise, false.
+ The current HTTP request context.
+
+
+ Provides a class that implements the interface in order to support additional metadata.
+
+
+ Initializes a new instance of the class.
+ The name of the model metadata.
+ The value of the model metadata.
+
+
+ Gets the name of the additional metadata attribute.
+ The name of the of the additional metadata attribute.
+
+
+ Provides metadata to the model metadata creation process.
+ The meta data.
+
+
+ Gets the type of the of the additional metadata attribute.
+ The type of the of the additional metadata attribute.
+
+
+ Gets the value of the of the additional metadata attribute.
+ The value of the of the additional metadata attribute.
+
+
+ Represents support for rendering HTML in AJAX scenarios within a view.
+
+
+ Initializes a new instance of the class using the specified view context and view data container.
+ The view context.
+ The view data container.
+ One or both of the parameters is null.
+
+
+ Initializes a new instance of the class by using the specified view context, view data container, and route collection.
+ The view context.
+ The view data container.
+ The URL route collection.
+ One or more of the parameters is null.
+
+
+ Gets or sets the root path for the location to use for globalization script files.
+ The location of the folder where globalization script files are stored. The default location is "~/Scripts/Globalization".
+
+
+ Serializes the specified message and returns the resulting JSON-formatted string.
+ The serialized message as a JSON-formatted string.
+ The message to serialize.
+
+
+ Gets the collection of URL routes for the application.
+ The collection of routes for the application.
+
+
+
+ Gets the context information about the view.
+ The context of the view.
+
+
+ Gets the current view data dictionary.
+ The view data dictionary.
+
+
+ Gets the view data container.
+ The view data container.
+
+
+ Represents support for rendering HTML in AJAX scenarios within a strongly typed view.
+ The type of the model.
+
+
+ Initializes a new instance of the class by using the specified view context and view data container.
+ The view context.
+ The view data container.
+
+
+ Initializes a new instance of the class by using the specified view context, view data container, and URL route collection.
+ The view context.
+ The view data container.
+ The URL route collection.
+
+
+
+ Gets the strongly typed version of the view data dictionary.
+ The strongly typed data dictionary of the view.
+
+
+ Represents a class that extends the class by adding the ability to determine whether an HTTP request is an AJAX request.
+
+
+
+ Represents an attribute that marks controllers and actions to skip the during authorization.
+
+
+ Initializes a new instance of the class.
+
+
+ Allows a request to include HTML markup during model binding by skipping request validation for the property. (It is strongly recommended that your application explicitly check all models where you disable request validation in order to prevent script exploits.)
+
+
+ Initializes a new instance of the class.
+
+
+ This method supports the ASP.NET MVC validation infrastructure and is not intended to be used directly from your code.
+ The model metadata.
+
+
+ Provides a way to register one or more areas in an ASP.NET MVC application.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the name of the area to register.
+ The name of the area to register.
+
+
+ Registers all areas in an ASP.NET MVC application.
+
+
+ Registers all areas in an ASP.NET MVC application by using the specified user-defined information.
+ An object that contains user-defined information to pass to the area.
+
+
+ Registers an area in an ASP.NET MVC application using the specified area's context information.
+ Encapsulates the information that is required in order to register the area.
+
+
+ Encapsulates the information that is required in order to register an area within an ASP.NET MVC application.
+
+
+ Initializes a new instance of the class using the specified area name and routes collection.
+ The name of the area to register.
+ The collection of routes for the application.
+
+
+ Initializes a new instance of the class using the specified area name, routes collection, and user-defined data.
+ The name of the area to register.
+ The collection of routes for the application.
+ An object that contains user-defined information to pass to the area.
+
+
+ Gets the name of the area to register.
+ The name of the area to register.
+
+
+ Maps the specified URL route and associates it with the area that is specified by the property.
+ A reference to the mapped route.
+ The name of the route.
+ The URL pattern for the route.
+ The parameter is null.
+
+
+ Maps the specified URL route and associates it with the area that is specified by the property, using the specified route default values.
+ A reference to the mapped route.
+ The name of the route.
+ The URL pattern for the route.
+ An object that contains default route values.
+ The parameter is null.
+
+
+ Maps the specified URL route and associates it with the area that is specified by the property, using the specified route default values and constraint.
+ A reference to the mapped route.
+ The name of the route.
+ The URL pattern for the route.
+ An object that contains default route values.
+ A set of expressions that specify valid values for a URL parameter.
+ The parameter is null.
+
+
+ Maps the specified URL route and associates it with the area that is specified by the property, using the specified route default values, constraints, and namespaces.
+ A reference to the mapped route.
+ The name of the route.
+ The URL pattern for the route.
+ An object that contains default route values.
+ A set of expressions that specify valid values for a URL parameter.
+ An enumerable set of namespaces for the application.
+ The parameter is null.
+
+
+ Maps the specified URL route and associates it with the area that is specified by the property, using the specified route default values and namespaces.
+ A reference to the mapped route.
+ The name of the route.
+ The URL pattern for the route.
+ An object that contains default route values.
+ An enumerable set of namespaces for the application.
+ The parameter is null.
+
+
+ Maps the specified URL route and associates it with the area that is specified by the property, using the specified namespaces.
+ A reference to the mapped route.
+ The name of the route.
+ The URL pattern for the route.
+ An enumerable set of namespaces for the application.
+ The parameter is null.
+
+
+ Gets the namespaces for the application.
+ An enumerable set of namespaces for the application.
+
+
+ Gets a collection of defined routes for the application.
+ A collection of defined routes for the application.
+
+
+ Gets an object that contains user-defined information to pass to the area.
+ An object that contains user-defined information to pass to the area.
+
+
+ Provides an abstract class to implement a metadata provider.
+
+
+ Called from constructors in a derived class to initialize the class.
+
+
+
+ Gets a list of attributes.
+ A list of attributes.
+ The type of the container.
+ The property descriptor.
+ The attribute container.
+
+
+ Returns a list of properties for the model.
+ A list of properties for the model.
+ The model container.
+ The type of the container.
+
+
+
+
+ Returns the type descriptor from the specified type.
+ The type descriptor.
+ The type.
+
+
+ Provides an abstract class for classes that implement a validation provider.
+
+
+ Called from constructors in derived classes to initialize the class.
+
+
+ Gets a type descriptor for the specified type.
+ A type descriptor for the specified type.
+ The type of the validation provider.
+
+
+ Gets the validators for the model using the metadata and controller context.
+ The validators for the model.
+ The metadata.
+ The controller context.
+
+
+ Gets the validators for the model using the metadata, the controller context, and a list of attributes.
+ The validators for the model.
+ The metadata.
+ The controller context.
+ The list of attributes.
+
+
+ Provided for backward compatibility with ASP.NET MVC 3.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents an attribute that is used to set the timeout value, in milliseconds, for an asynchronous method.
+
+
+ Initializes a new instance of the class.
+ The timeout value, in milliseconds.
+
+
+ Gets the timeout duration, in milliseconds.
+ The timeout duration, in milliseconds.
+
+
+ Called by ASP.NET before the asynchronous action method executes.
+ The filter context.
+
+
+ Encapsulates the information that is required for using an attribute.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the specified controller context.
+ The context within which the result is executed. The context information includes the controller, HTTP content, request context, and route data.
+
+
+ Initializes a new instance of the class using the specified controller context and action descriptor.
+ The context in which the result is executed. The context information includes the controller, HTTP content, request context, and route data.
+ An object that provides information about an action method, such as its name, controller, parameters, attributes, and filters.
+
+
+ Provides information about the action method that is marked by the attribute, such as its name, controller, parameters, attributes, and filters.
+ The action descriptor for the action method that is marked by the attribute.
+
+
+ Gets or sets the result that is returned by an action method.
+ The result that is returned by an action method.
+
+
+ Represents an attribute that is used to restrict access by callers to an action method.
+
+
+ Initializes a new instance of the class.
+
+
+ When overridden, provides an entry point for custom authorization checks.
+ true if the user is authorized; otherwise, false.
+ The HTTP context, which encapsulates all HTTP-specific information about an individual HTTP request.
+ The parameter is null.
+
+
+ Processes HTTP requests that fail authorization.
+ Encapsulates the information for using . The object contains the controller, HTTP context, request context, action result, and route data.
+
+
+ Called when a process requests authorization.
+ The filter context, which encapsulates information for using .
+ The parameter is null.
+
+
+ Called when the caching module requests authorization.
+ A reference to the validation status.
+ The HTTP context, which encapsulates all HTTP-specific information about an individual HTTP request.
+ The parameter is null.
+
+
+ Gets or sets the user roles.
+ The user roles.
+
+
+ Gets the unique identifier for this attribute.
+ The unique identifier for this attribute.
+
+
+ Gets or sets the authorized users.
+ The authorized users.
+
+
+ Represents an attribute that is used to provide details about how model binding to a parameter should occur.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a comma-delimited list of property names for which binding is not allowed.
+ The exclude list.
+
+
+ Gets or sets a comma-delimited list of property names for which binding is allowed.
+ The include list.
+
+
+ Determines whether the specified property is allowed.
+ true if the specified property is allowed; otherwise, false.
+ The name of the property.
+
+
+ Gets or sets the prefix to use when markup is rendered for binding to an action argument or to a model property.
+ The prefix to use.
+
+
+ Represents the base class for views that are compiled by the BuildManager class before being rendered by a view engine.
+
+
+ Initializes a new instance of the class using the specified controller context and view path.
+ The controller context.
+ The view path.
+
+
+ Initializes a new instance of the class using the specified controller context, view path, and view page activator.
+ Context information for the current controller. This information includes the HTTP context, request context, route data, parent action view context, and more.
+ The path to the view that will be rendered.
+ The object responsible for dynamically constructing the view page at run time.
+ The parameter is null.
+ The parameter is null or empty.
+
+
+ Renders the specified view context by using the specified the writer object.
+ Information related to rendering a view, such as view data, temporary data, and form context.
+ The writer object.
+ The parameter is null.
+ An instance of the view type could not be created.
+
+
+ When overridden in a derived class, renders the specified view context by using the specified writer object and object instance.
+ Information related to rendering a view, such as view data, temporary data, and form context.
+ The writer object.
+ An object that contains additional information that can be used in the view.
+
+
+ Gets or sets the view path.
+ The view path.
+
+
+ Provides a base class for view engines.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the specified view page activator.
+ The view page activator.
+
+
+ Gets a value that indicates whether a file exists in the specified virtual file system (path).
+ true if the file exists in the virtual file system; otherwise, false.
+ The controller context.
+ The virtual path.
+
+
+ Gets the view page activator.
+ The view page activator.
+
+
+ Maps a browser request to a byte array.
+
+
+ Initializes a new instance of the class.
+
+
+ Binds the model by using the specified controller context and binding context.
+ The bound data object.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider.
+ The parameter is null.
+
+
+ Provides an abstract class to implement a cached metadata provider.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides a container to cache attributes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides a container to cache .
+
+
+ Initializes a new instance of the class using the prototype and model accessor.
+ The prototype.
+ The model accessor.
+
+
+ Initializes a new instance of the class using the provider, container type, model type, property name and attributes.
+ The provider.
+ The container type.
+ The model type.
+ The property name.
+ The attributes.
+
+
+ Gets a value that indicates whether empty strings that are posted back in forms should be converted to Nothing.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ A value that indicates whether empty strings that are posted back in forms should be converted to Nothing.
+
+
+ Gets meta information about the data type.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ Meta information about the data type.
+
+
+ Gets the description of the model.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ The description of the model.
+
+
+ Gets the display format string for the model.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ The display format string for the model.
+
+
+ Gets the display name of the model.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ The display name of the model.
+
+
+ Gets the edit format string of the model.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ The edit format string of the model.
+
+
+ Gets a value that indicates whether the model object should be rendered using associated HTML elements.Gets a value that indicates whether the model object should be rendered using associated HTML elements.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ A value that indicates whether the model object should be rendered using associated HTML elements.
+
+
+ Gets a value that indicates whether the model is read-only.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ A value that indicates whether the model is read-only.
+
+
+ Gets a value that indicates whether the model is required.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ A value that indicates whether the model is required.
+
+
+ Gets the string to display for null values.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ The string to display for null values.
+
+
+ Gets a value that represents order of the current metadata.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ A value that represents order of the current metadata.
+
+
+ Gets a short display name.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ A short display name.
+
+
+ Gets a value that indicates whether the property should be displayed in read-only views such as list and detail views.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ A value that indicates whether the property should be displayed in read-only views such as list and detail views.
+
+
+ Gets or sets a value that indicates whether the model should be displayed in editable views.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ Returns .
+
+
+ Gets the simple display string for the model.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ The simple display string for the model.
+
+
+ Gets a hint that suggests what template to use for this model.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ A hint that suggests what template to use for this model.
+
+
+ Gets a value that can be used as a watermark.If the value is cached, the cashed value is returned; otherwise the value is retrieved from the model metadata and stored in the cache.
+ A value that can be used as a watermark.
+
+
+ Implements the default cached model metadata provider for ASP.NET MVC.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns a container of real instances of the cached metadata class based on prototype and model accessor.
+ A container of real instances of the cached metadata class.
+ The prototype.
+ The model accessor.
+
+
+ Returns a container prototype instances of the metadata class.
+ a container prototype instances of the metadata class.
+ The attributes type.
+ The container type.
+ The model type.
+ The property name.
+
+
+ Provides a container for cached metadata.
+ he type of the container.
+
+
+ Constructor for creating real instances of the metadata class based on a prototype.
+ The provider.
+ The container type.
+ The model type.
+ The property name.
+ The prototype.
+
+
+ Constructor for creating the prototype instances of the metadata class.
+ The prototype.
+ The model accessor.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that indicates whether empty strings that are posted back in forms should be converted to null.
+ A cached value that indicates whether empty strings that are posted back in forms should be converted to null.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets meta information about the data type.
+ Meta information about the data type.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets the description of the model.
+ The description of the model.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets the display format string for the model.
+ The display format string for the model.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets the display name of the model.
+ The display name of the model.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets the edit format string of the model.
+ The edit format string of the model.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that indicates whether the model object should be rendered using associated HTML elements.
+ A cached value that indicates whether the model object should be rendered using associated HTML elements.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that indicates whether the model is read-only.
+ A cached value that indicates whether the model is read-only.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that indicates whether the model is required.
+ A cached value that indicates whether the model is required.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets the cached string to display for null values.
+ The cached string to display for null values.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that represents order of the current metadata.
+ A cached value that represents order of the current metadata.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a short display name.
+ A short display name.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that indicates whether the property should be displayed in read-only views such as list and detail views.
+ A cached value that indicates whether the property should be displayed in read-only views such as list and detail views.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that indicates whether the model should be displayed in editable views.
+ A cached value that indicates whether the model should be displayed in editable views.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets the cached simple display string for the model.
+ The cached simple display string for the model.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached hint that suggests what template to use for this model.
+ A cached hint that suggests what template to use for this model.
+
+
+ This method is protected and therefore cannot be called directly. This method was designed to be overridden in a deriving class such as .Gets or sets a cached value that can be used as a watermark.
+ A cached value that can be used as a watermark.
+
+
+ Gets or sets a cached value that indicates whether empty strings that are posted back in forms should be converted to null.
+ A cached value that indicates whether empty strings that are posted back in forms should be converted to null.
+
+
+ Gets or sets meta information about the data type.
+ The meta information about the data type.
+
+
+ Gets or sets the description of the model.
+ The description of the model.
+
+
+ Gets or sets the display format string for the model.
+ The display format string for the model.
+
+
+ Gets or sets the display name of the model.
+ The display name of the model.
+
+
+ Gets or sets the edit format string of the model.
+ The edit format string of the model.
+
+
+ Gets or sets the simple display string for the model.
+ The simple display string for the model.
+
+
+ Gets or sets a value that indicates whether the model object should be rendered using associated HTML elements.
+ A value that indicates whether the model object should be rendered using associated HTML elements.
+
+
+ Gets or sets a value that indicates whether the model is read-only.
+ A value that indicates whether the model is read-only.
+
+
+ Gets or sets a value that indicates whether the model is required.
+ A value that indicates whether the model is required.
+
+
+ Gets or sets the string to display for null values.
+ The string to display for null values.
+
+
+ Gets or sets a value that represents order of the current metadata.
+ The order value of the current metadata.
+
+
+ Gets or sets the prototype cache.
+ The prototype cache.
+
+
+ Gets or sets a short display name.
+ The short display name.
+
+
+ Gets or sets a value that indicates whether the property should be displayed in read-only views such as list and detail views.
+ true if the model should be displayed in read-only views; otherwise, false.
+
+
+ Gets or sets a value that indicates whether the model should be displayed in editable views.
+ true if the model should be displayed in editable views; otherwise, false.
+
+
+ Gets or sets the simple display string for the model.
+ The simple display string for the model.
+
+
+ Gets or sets a hint that suggests what template to use for this model.
+ A hint that suggests what template to use for this model.
+
+
+ Gets or sets a value that can be used as a watermark.
+ A value that can be used as a watermark.
+
+
+ Provides a mechanism to propagates notification that model binder operations should be canceled.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns the default cancellation token.
+ The default cancellation token.
+ The controller context.
+ The binding context.
+
+
+ Represents an attribute that is used to indicate that an action method should be called only as a child action.
+
+
+ Initializes a new instance of the class.
+
+
+ Called when authorization is required.
+ An object that encapsulates the information that is required in order to authorize access to the child action.
+
+
+ Represents a value provider for values from child actions.
+
+
+ Initializes a new instance of the class.
+ The controller context.
+
+
+ Retrieves a value object using the specified key.
+ The value object for the specified key.
+ The key.
+
+
+ Represents a factory for creating value provider objects for child actions.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns a object for the specified controller context.
+ A object.
+ The controller context.
+
+
+ Returns the client data-type model validators.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns the client data-type model validators.
+ The client data-type model validators.
+ The metadata.
+ The context.
+
+
+
+ Provides an attribute that compares two properties of a model.
+
+
+ Initializes a new instance of the class.
+ The property to compare with the current property.
+
+
+ Applies formatting to an error message based on the data field where the compare error occurred.
+ The formatted error message.
+ The name of the field that caused the validation failure.
+
+
+ Formats the property for client validation by prepending an asterisk (*) and a dot.
+ The string "*." is prepended to the property.
+ The property.
+
+
+ Gets a list of compare-value client validation rules for the property using the specified model metadata and controller context.
+ A list of compare-value client validation rules.
+ The model metadata.
+ The controller context.
+
+
+ Determines whether the specified object is equal to the compared object.
+ null if the value of the compared property is equal to the value parameter; otherwise, a validation result that contains the error message that indicates that the comparison failed.
+ The value of the object to compare.
+ The validation context.
+
+
+ Gets the property to compare with the current property.
+ The property to compare with the current property.
+
+
+
+ Represents a user-defined content type that is the result of an action method.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the content.
+ The content.
+
+
+ Gets or sets the content encoding.
+ The content encoding.
+
+
+ Gets or sets the type of the content.
+ The type of the content.
+
+
+ Enables processing of the result of an action method by a custom type that inherits from the class.
+ The context within which the result is executed.
+ The parameter is null.
+
+
+ Provides methods that respond to HTTP requests that are made to an ASP.NET MVC Web site.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the action invoker for the controller.
+ The action invoker.
+
+
+
+
+
+ Gets or sets the binder.
+ The binder.
+
+
+ Creates a content result object by using a string.
+ The content result instance.
+ The content to write to the response.
+
+
+ Creates a content result object by using a string and the content type.
+ The content result instance.
+ The content to write to the response.
+ The content type (MIME type).
+
+
+ Creates a content result object by using a string, the content type, and content encoding.
+ The content result instance.
+ The content to write to the response.
+ The content type (MIME type).
+ The content encoding.
+
+
+ Creates an action invoker.
+ An action invoker.
+
+
+ Creates a temporary data provider.
+ A temporary data provider.
+
+
+
+ Releases all resources that are used by the current instance of the class.
+
+
+ Releases unmanaged resources and optionally releases managed resources.
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+
+ Invokes the action in the current controller context.
+
+
+ Creates a object by using the file contents and file type.
+ The file-content result object.
+ The binary content to send to the response.
+ The content type (MIME type).
+
+
+ Creates a object by using the file contents, content type, and the destination file name.
+ The file-content result object.
+ The binary content to send to the response.
+ The content type (MIME type).
+ The file name to use in the file-download dialog box that is displayed in the browser.
+
+
+ Creates a object by using the object and content type.
+ The file-content result object.
+ The stream to send to the response.
+ The content type (MIME type).
+
+
+ Creates a object using the object, the content type, and the target file name.
+ The file-stream result object.
+ The stream to send to the response.
+ The content type (MIME type)
+ The file name to use in the file-download dialog box that is displayed in the browser.
+
+
+ Creates a object by using the file name and the content type.
+ The file-stream result object.
+ The path of the file to send to the response.
+ The content type (MIME type).
+
+
+ Creates a object by using the file name, the content type, and the file download name.
+ The file-stream result object.
+ The path of the file to send to the response.
+ The content type (MIME type).
+ The file name to use in the file-download dialog box that is displayed in the browser.
+
+
+ Called when a request matches this controller, but no method with the specified action name is found in the controller.
+ The name of the attempted action.
+
+
+ Gets HTTP-specific information about an individual HTTP request.
+ The HTTP context.
+
+
+ Returns an instance of the class.
+ An instance of the class.
+
+
+ Returns an instance of the class.
+ An instance of the class.
+ The status description.
+
+
+ Initializes data that might not be available when the constructor is called.
+ The HTTP context and route data.
+
+
+ Creates a object.
+ The object that writes the script to the response.
+ The JavaScript code to run on the client
+
+
+ Creates a object that serializes the specified object to JavaScript Object Notation (JSON).
+ The JSON result object that serializes the specified object to JSON format. The result object that is prepared by this method is written to the response by the ASP.NET MVC framework when the object is executed.
+ The JavaScript object graph to serialize.
+
+
+ Creates a object that serializes the specified object to JavaScript Object Notation (JSON) format.
+ The JSON result object that serializes the specified object to JSON format.
+ The JavaScript object graph to serialize.
+ The content type (MIME type).
+
+
+ Creates a object that serializes the specified object to JavaScript Object Notation (JSON) format.
+ The JSON result object that serializes the specified object to JSON format.
+ The JavaScript object graph to serialize.
+ The content type (MIME type).
+ The content encoding.
+
+
+ Creates a object that serializes the specified object to JavaScript Object Notation (JSON) format using the content type, content encoding, and the JSON request behavior.
+ The result object that serializes the specified object to JSON format.
+ The JavaScript object graph to serialize.
+ The content type (MIME type).
+ The content encoding.
+ The JSON request behavior
+
+
+ Creates a object that serializes the specified object to JavaScript Object Notation (JSON) format using the specified content type and JSON request behavior.
+ The result object that serializes the specified object to JSON format.
+ The JavaScript object graph to serialize.
+ The content type (MIME type).
+ The JSON request behavior
+
+
+ Creates a object that serializes the specified object to JavaScript Object Notation (JSON) format using the specified JSON request behavior.
+ The result object that serializes the specified object to JSON format.
+ The JavaScript object graph to serialize.
+ The JSON request behavior.
+
+
+ Gets the model state dictionary object that contains the state of the model and of model-binding validation.
+ The model state dictionary.
+
+
+ Called after the action method is invoked.
+ Information about the current request and action.
+
+
+ Called before the action method is invoked.
+ Information about the current request and action.
+
+
+ Called when authorization occurs.
+ Information about the current request and action.
+
+
+ Called when an unhandled exception occurs in the action.
+ Information about the current request and action.
+
+
+ Called after the action result that is returned by an action method is executed.
+ Information about the current request and action result
+
+
+ Called before the action result that is returned by an action method is executed.
+ Information about the current request and action result
+
+
+ Creates a object that renders a partial view.
+ A partial-view result object.
+
+
+ Creates a object that renders a partial view, by using the specified model.
+ A partial-view result object.
+ The model that is rendered by the partial view
+
+
+ Creates a object that renders a partial view, by using the specified view name.
+ A partial-view result object.
+ The name of the view that is rendered to the response.
+
+
+ Creates a object that renders a partial view, by using the specified view name and model.
+ A partial-view result object.
+ The name of the view that is rendered to the response.
+ The model that is rendered by the partial view
+
+
+
+ Creates a object that redirects to the specified URL.
+ The redirect result object.
+ The URL to redirect to.
+
+
+ Returns an instance of the class with the property set to true.
+ An instance of the class with the property set to true.
+ The URL to redirect to.
+
+
+ Redirects to the specified action using the action name.
+ The redirect result object.
+ The name of the action.
+
+
+ Redirects to the specified action using the action name and route values.
+ The redirect result object.
+ The name of the action.
+ The parameters for a route.
+
+
+ Redirects to the specified action using the action name and controller name.
+ The redirect result object.
+ The name of the action.
+ The name of the controller
+
+
+ Redirects to the specified action using the action name, controller name, and route values.
+ The redirect result object.
+ The name of the action.
+ The name of the controller
+ The parameters for a route.
+
+
+ Redirects to the specified action using the action name, controller name, and route dictionary.
+ The redirect result object.
+ The name of the action.
+ The name of the controller
+ The parameters for a route.
+
+
+ Redirects to the specified action using the action name and route dictionary.
+ The redirect result object.
+ The name of the action.
+ The parameters for a route.
+
+
+ Returns an instance of the class with the property set to true using the specified action name.
+ An instance of the class with the property set to true using the specified action name, controller name, and route values.
+ The action name.
+
+
+ Returns an instance of the class with the property set to true using the specified action name, and route values.
+ An instance of the class with the property set to true using the specified action name, and route values.
+ The action name.
+ The route values.
+
+
+ Returns an instance of the class with the property set to true using the specified action name, and controller name.
+ An instance of the class with the property set to true using the specified action name, and controller name.
+ The action name.
+ The controller name.
+
+
+ Returns an instance of the class with the property set to true using the specified action name, controller name, and route values.
+ An instance of the class with the property set to true.
+ The action name.
+ The controller name.
+ The route values.
+
+
+ Returns an instance of the class with the property set to true using the specified action name, controller name, and route values.
+ An instance of the class with the property set to true using the specified action name, controller name, and route values.
+ The action name.
+ The controller name.
+ The route values.
+
+
+ Returns an instance of the class with the property set to true using the specified action name, and route values.
+ An instance of the class with the property set to true using the specified action name, and route values.
+ The action name.
+ The route values.
+
+
+ Redirects to the specified route using the specified route values.
+ The redirect-to-route result object.
+ The parameters for a route.
+
+
+ Redirects to the specified route using the route name.
+ The redirect-to-route result object.
+ The name of the route
+
+
+ Redirects to the specified route using the route name and route values.
+ The redirect-to-route result object.
+ The name of the route
+ The parameters for a route.
+
+
+ Redirects to the specified route using the route name and route dictionary.
+ The redirect-to-route result object.
+ The name of the route
+ The parameters for a route.
+
+
+ Redirects to the specified route using the route dictionary.
+ The redirect-to-route result object.
+ The parameters for a route.
+
+
+ Returns an instance of the class with the property set to true using the specified route values.
+ Returns an instance of the class with the property set to true.
+ The route name.
+
+
+ Returns an instance of the class with the property set to true using the specified route name.
+ Returns an instance of the class with the property set to true using the specified route name.
+ The route name.
+
+
+ Returns an instance of the class with the property set to true using the specified route name and route values.
+ An instance of the class with the property set to true.
+ The route name.
+ The route values.
+
+
+ Returns an instance of the class with the property set to true using the specified route name and route values.
+ An instance of the class with the property set to true using the specified route name and route values.
+ The route name.
+ The route values.
+
+
+ Returns an instance of the class with the property set to true using the specified route values.
+ An instance of the class with the property set to true using the specified route values.
+ The route values.
+
+
+ Gets the object for the current HTTP request.
+ The request object.
+
+
+ Gets the object for the current HTTP response.
+ The response object.
+
+
+ Gets the route data for the current request.
+ The route data.
+
+
+ Gets the object that provides methods that are used during Web request processing.
+ The HTTP server object.
+
+
+ Gets the object for the current HTTP request.
+ The HTTP session-state object for the current HTTP request.
+
+
+
+
+ This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method.
+ The filter context.
+
+
+ This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method.
+ The filter context.
+
+
+ This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method.
+ The filter context.
+
+
+ This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method.
+ The filter context.
+
+
+ This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method.
+ The filter context.
+
+
+ This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method.
+ The filter context.
+
+
+ Gets the temporary-data provider object that is used to store data for the next request.
+ The temporary-data provider.
+
+
+ Updates the specified model instance using values from the controller's current value provider.
+ true if the update is successful; otherwise, false.
+ The model instance to update.
+ The type of the model object.
+ The parameter or the property is null.
+
+
+ Updates the specified model instance using values from the controller's current value provider and a prefix.
+ true if the update is successful; otherwise, false.
+ The model instance to update.
+ The prefix to use when looking up values in the value provider.
+ The type of the model object.
+ The parameter or the property is null.
+
+
+ Updates the specified model instance using values from the controller's current value provider, a prefix, and included properties.
+ true if the update is successful; otherwise, false.
+ The model instance to update.
+ The prefix to use when looking up values in the value provider.
+ A list of properties of the model to update.
+ The type of the model object.
+ The parameter or the property is null.
+
+
+ Updates the specified model instance using values from the controller's current value provider, a prefix, a list of properties to exclude, and a list of properties to include.
+ true if the update is successful; otherwise, false.
+ The model instance to update.
+ The prefix to use when looking up values in the value provider
+ A list of properties of the model to update.
+ A list of properties to explicitly exclude from the update. These are excluded even if they are listed in the parameter list.
+ The type of the model object.
+ The parameter or the property is null.
+
+
+ Updates the specified model instance using values from the value provider, a prefix, a list of properties to exclude , and a list of properties to include.
+ true if the update is successful; otherwise, false.
+ The model instance to update.
+ The prefix to use when looking up values in the value provider.
+ A list of properties of the model to update.
+ A list of properties to explicitly exclude from the update. These are excluded even if they are listed in the parameter list.
+ A dictionary of values that is used to update the model.
+ The type of the model object.
+
+
+ Updates the specified model instance using values from the value provider, a prefix, and included properties.
+ true if the update is successful; otherwise, false.
+ The model instance to update.
+ The prefix to use when looking up values in the value provider.
+ A list of properties of the model to update.
+ A dictionary of values that is used to update the model.
+ The type of the model object.
+
+
+ Updates the specified model instance using values from the value provider and a prefix.
+ true if the update is successful; otherwise, false.
+ The model instance to update.
+ The prefix to use when looking up values in the value provider.
+ A dictionary of values that is used to update the model.
+ The type of the model object.
+
+
+ Updates the specified model instance using values from the controller's current value provider and included properties.
+ true if the update is successful; otherwise, false.
+ The model instance to update.
+ A list of properties of the model to update.
+ The type of the model object.
+ The parameter or the property is null.
+
+
+ Updates the specified model instance using values from the value provider and a list of properties to include.
+ true if the update is successful; otherwise, false.
+ The model instance to update.
+ A list of properties of the model to update.
+ A dictionary of values that is used to update the model.
+ The type of the model object.
+
+
+ Updates the specified model instance using values from the value provider.
+ true if the update is successful; otherwise, false.
+ The model instance to update.
+ A dictionary of values that is used to update the model.
+ The type of the model object.
+
+
+ Validates the specified model instance.
+ true if the model validation is successful; otherwise, false.
+ The model instance to validate.
+
+
+ Validates the specified model instance using an HTML prefix.
+ true if the model validation is successful; otherwise, false.
+ The model to validate.
+ The prefix to use when looking up values in the model provider.
+
+
+ Updates the specified model instance using values from the controller's current value provider.
+ The model instance to update.
+ The type of the model object.
+ The model was not successfully updated.
+
+
+ Updates the specified model instance using values from the controller's current value provider and a prefix.
+ The model instance to update.
+ A prefix to use when looking up values in the value provider.
+ The type of the model object.
+
+
+ Updates the specified model instance using values from the controller's current value provider, a prefix, and included properties.
+ The model instance to update.
+ A prefix to use when looking up values in the value provider.
+ A list of properties of the model to update.
+ The type of the model object.
+
+
+ Updates the specified model instance using values from the controller's current value provider, a prefix, a list of properties to exclude, and a list of properties to include.
+ The model instance to update.
+ A prefix to use when looking up values in the value provider.
+ A list of properties of the model to update.
+ A list of properties to explicitly exclude from the update. These are excluded even if they are listed in the list.
+ The type of the model object.
+
+
+ Updates the specified model instance using values from the value provider, a prefix, a list of properties to exclude, and a list of properties to include.
+ The model instance to update.
+ The prefix to use when looking up values in the value provider.
+ A list of properties of the model to update.
+ A list of properties to explicitly exclude from the update. These are excluded even if they are listed in the parameter list.
+ A dictionary of values that is used to update the model.
+ The type of the model object.
+
+
+ Updates the specified model instance using values from the value provider, a prefix, and a list of properties to include.
+ The model instance to update.
+ The prefix to use when looking up values in the value provider.
+ A list of properties of the model to update.
+ A dictionary of values that is used to update the model.
+ The type of the model object.
+
+
+ Updates the specified model instance using values from the value provider and a prefix.
+ The model instance to update.
+ The prefix to use when looking up values in the value provider.
+ A dictionary of values that is used to update the model.
+ The type of the model object.
+
+
+ Updates the specified model instance using values from the controller object's current value provider.
+ The model instance to update.
+ A list of properties of the model to update.
+ The type of the model object.
+
+
+ Updates the specified model instance using values from the value provider, a prefix, and a list of properties to include.
+ The model instance to update.
+ A list of properties of the model to update.
+ A dictionary of values that is used to update the model.
+ The type of the model object.
+
+
+ Updates the specified model instance using values from the value provider.
+ The model instance to update.
+ A dictionary of values that is used to update the model.
+ The type of the model object.
+
+
+ Gets the URL helper object that is used to generate URLs by using routing.
+ The URL helper object.
+
+
+ Gets the user security information for the current HTTP request.
+ The user security information for the current HTTP request.
+
+
+ Validates the specified model instance.
+ The model to validate.
+
+
+ Validates the specified model instance using an HTML prefix.
+ The model to validate.
+ The prefix to use when looking up values in the model provider.
+
+
+ Creates a object that renders a view to the response.
+ The view result that renders a view to the response.
+
+
+ Creates a object by using the model that renders a view to the response.
+ The view result.
+ The model that is rendered by the view.
+
+
+ Creates a object by using the view name that renders a view.
+ The view result.
+ The name of the view that is rendered to the response.
+
+
+ Creates a object by using the view name and model that renders a view to the response.
+ The view result.
+ The name of the view that is rendered to the response.
+ The model that is rendered by the view.
+
+
+ Creates a object using the view name and master-page name that renders a view to the response.
+ The view result.
+ The name of the view that is rendered to the response.
+ The name of the master page or template to use when the view is rendered.
+
+
+ Creates a object using the view name, master-page name, and model that renders a view.
+ The view result.
+ The name of the view that is rendered to the response.
+ The name of the master page or template to use when the view is rendered.
+ The model that is rendered by the view.
+
+
+ Creates a object that renders the specified object.
+ The view result.
+ The view that is rendered to the response.
+
+
+ Creates a object that renders the specified object.
+ The view result.
+ The view that is rendered to the response.
+ The model that is rendered by the view.
+
+
+
+ Represents a class that is responsible for invoking the action methods of a controller.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the model binders that are associated with the action.
+ The model binders that are associated with the action.
+
+
+ Creates the action result.
+ The action result object.
+ The controller context.
+ The action descriptor.
+ The action return value.
+
+
+ Finds the information about the action method.
+ Information about the action method.
+ The controller context.
+ The controller descriptor.
+ The name of the action.
+
+
+ Retrieves information about the controller by using the specified controller context.
+ Information about the controller.
+ The controller context.
+
+
+ Retrieves information about the action filters.
+ Information about the action filters.
+ The controller context.
+ The action descriptor.
+
+
+ Gets the value of the specified action-method parameter.
+ The value of the action-method parameter.
+ The controller context.
+ The parameter descriptor.
+
+
+ Gets the values of the action-method parameters.
+ The values of the action-method parameters.
+ The controller context.
+ The action descriptor.
+
+
+ Invokes the specified action by using the specified controller context.
+ The result of executing the action.
+ The controller context.
+ The name of the action to invoke.
+ The parameter is null.
+ The parameter is null or empty.
+ The thread was aborted during invocation of the action.
+ An unspecified error occurred during invocation of the action.
+
+
+ Invokes the specified action method by using the specified parameters and the controller context.
+ The result of executing the action method.
+ The controller context.
+ The action descriptor.
+ The parameters.
+
+
+ Invokes the specified action method by using the specified parameters, controller context, and action filters.
+ The context for the ActionExecuted method of the class.
+ The controller context.
+ The action filters.
+ The action descriptor.
+ The parameters.
+
+
+ Invokes the specified action result by using the specified controller context.
+ The controller context.
+ The action result.
+
+
+ Invokes the specified action result by using the specified action filters and the controller context.
+ The context for the ResultExecuted method of the class.
+ The controller context.
+ The action filters.
+ The action result.
+
+
+ Invokes the specified authorization filters by using the specified action descriptor and controller context.
+ The context for the object.
+ The controller context.
+ The authorization filters.
+ The action descriptor.
+
+
+ Invokes the specified exception filters by using the specified exception and controller context.
+ The context for the object.
+ The controller context.
+ The exception filters.
+ The exception.
+
+
+ Represents the base class for all MVC controllers.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the controller context.
+ The controller context.
+
+
+ Executes the specified request context.
+ The request context.
+ The parameter is null.
+
+
+ Executes the request.
+
+
+ Initializes the specified request context.
+ The request context.
+
+
+ Executes the specified request context.
+ The request context.
+
+
+ Gets or sets the dictionary for temporary data.
+ The dictionary for temporary data.
+
+
+ Gets or sets a value that indicates whether request validation is enabled for this request.
+ true if request validation is enabled for this request; otherwise, false. The default is true.
+
+
+ Gets or sets the value provider for the controller.
+ The value provider for the controller.
+
+
+ Gets the dynamic view data dictionary.
+ The dynamic view data dictionary.
+
+
+ Gets or sets the dictionary for view data.
+ The dictionary for the view data.
+
+
+ Represents a class that is responsible for dynamically building a controller.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the current controller builder object.
+ The current controller builder.
+
+
+ Gets the default namespaces.
+ The default namespaces.
+
+
+ Gets the associated controller factory.
+ The controller factory.
+
+
+ Sets the controller factory by using the specified type.
+ The type of the controller factory.
+ The parameter is null.
+ The controller factory cannot be assigned from the type in the parameter.
+ An error occurred while the controller factory was being set.
+
+
+ Sets the specified controller factory.
+ The controller factory.
+ The parameter is null.
+
+
+ Encapsulates information about an HTTP request that matches specified and instances.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using the specified HTTP context, URL route data, and controller.
+ The HTTP context.
+ The route data.
+ The controller.
+
+
+ Initializes a new instance of the class by using the specified controller context.
+ The controller context.
+ The parameter is null.
+
+
+ Initializes a new instance of the class by using the specified request context and controller.
+ The request context.
+ The controller.
+ One or both parameters are null.
+
+
+ Gets or sets the controller.
+ The controller.
+
+
+
+ Gets or sets the HTTP context.
+ The HTTP context.
+
+
+ Gets a value that indicates whether the associated action method is a child action.
+ true if the associated action method is a child action; otherwise, false.
+
+
+ Gets an object that contains the view context information for the parent action method.
+ An object that contains the view context information for the parent action method.
+
+
+ Gets or sets the request context.
+ The request context.
+
+
+ Gets or sets the URL route data.
+ The URL route data.
+
+
+ Encapsulates information that describes a controller, such as its name, type, and actions.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the name of the controller.
+ The name of the controller.
+
+
+ Gets the type of the controller.
+ The type of the controller.
+
+
+ Finds an action method by using the specified name and controller context.
+ The information about the action method.
+ The controller context.
+ The name of the action.
+
+
+ Retrieves a list of action-method descriptors in the controller.
+ A list of action-method descriptors in the controller.
+
+
+ Retrieves custom attributes that are defined for this member, excluding named attributes.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+ The custom attribute type cannot be loaded.
+ There is more than one attribute of type defined for this member.
+
+
+ Retrieves custom attributes of a specified type that are defined for this member, excluding named attributes.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ The type of the custom attributes.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+ The custom attribute type cannot be loaded.
+ There is more than one attribute of type defined for this member.
+ The parameter is null (Nothing in Visual Basic).
+
+
+
+ Retrieves a value that indicates whether one or more instance of the specified custom attribute are defined for this member.
+ true if the is defined for this member; otherwise, false.
+ The type of the custom attribute.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+ The parameter is null (Nothing in Visual Basic).
+
+
+ When implemented in a derived class, gets the unique ID for the controller descriptor using lazy initialization.
+ The unique ID.
+
+
+ Adds the controller to the instance.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns the collection of controller instance filters.
+ The collection of controller instance filters.
+ The controller context.
+ The action descriptor.
+
+
+ Represents an attribute that invokes a custom model binder.
+
+
+ Initializes a new instance of the class.
+
+
+ Retrieves the associated model binder.
+ A reference to an object that implements the interface.
+
+
+ Provides a container for common metadata, for the class, and for the class for a data model.
+
+
+
+ Returns simple text for the model data.
+ Simple text for the model data.
+
+
+ Implements the default model metadata provider for ASP.NET MVC.
+
+
+ Initializes a new instance of the class.
+
+
+
+ Represents the method that creates a instance.
+
+
+ Provides a model validator.
+
+
+ Initializes a new instance of the class.
+ The metadata for the model.
+ The controller context for the model.
+ The validation attribute for the model.
+
+
+ Gets the validation attribute for the model validator.
+ The validation attribute for the model validator.
+
+
+ Gets the error message for the validation failure.
+ The error message for the validation failure.
+
+
+ Retrieves a collection of client validation rules.
+ A collection of client validation rules.
+
+
+ Gets a value that indicates whether model validation is required.
+ true if model validation is required; otherwise, false.
+
+
+ Returns a list of validation error messages for the model.
+ A list of validation error messages for the model, or an empty list if no errors have occurred.
+ The container for the model.
+
+
+ Provides a model validator for a specified validation type.
+
+
+
+ Initializes a new instance of the class.
+ The metadata for the model.
+ The controller context for the model.
+ The validation attribute for the model.
+
+
+ Gets the validation attribute from the model validator.
+ The validation attribute from the model validator.
+
+
+ Implements the default validation provider for ASP.NET MVC.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a value that indicates whether non-nullable value types are required.
+ true if non-nullable value types are required; otherwise, false.
+
+
+ Gets a list of validators.
+ A list of validators.
+ The metadata.
+ The context.
+ The list of validation attributes.
+
+
+ Registers an adapter to provide client-side validation.
+ The type of the validation attribute.
+ The type of the adapter.
+
+
+ Registers an adapter factory for the validation provider.
+ The type of the attribute.
+ The factory that will be used to create the object for the specified attribute.
+
+
+ Registers the default adapter.
+ The type of the adapter.
+
+
+ Registers the default adapter factory.
+ The factory that will be used to create the object for the default adapter.
+
+
+ Registers an adapter to provide default object validation.
+ The type of the adapter.
+
+
+ Registers an adapter factory for the default object validation provider.
+ The factory.
+
+
+ Registers an adapter to provide object validation.
+ The type of the model.
+ The type of the adapter.
+
+
+ Registers an adapter factory for the object validation provider.
+ The type of the model.
+ The factory.
+
+
+ Provides a factory for validators that are based on .
+
+
+ Provides a container for the error-information model validator.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets a list of error-information model validators.
+ A list of error-information model validators.
+ The model metadata.
+ The controller context.
+
+
+ Represents the controller factory that is registered by default.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using a controller activator.
+ An object that implements the controller activator interface.
+
+
+ Creates the specified controller by using the specified request context.
+ The controller.
+ The context of the HTTP request, which includes the HTTP context and route data.
+ The name of the controller.
+ The parameter is null.
+ The parameter is null or empty.
+
+
+ Retrieves the controller instance for the specified request context and controller type.
+ The controller instance.
+ The context of the HTTP request, which includes the HTTP context and route data.
+ The type of the controller.
+
+ is null.
+
+ cannot be assigned.
+ An instance of cannot be created.
+
+
+ Returns the controller's session behavior.
+ The controller's session behavior.
+ The request context.
+ The type of the controller.
+
+
+ Retrieves the controller type for the specified name and request context.
+ The controller type.
+ The context of the HTTP request, which includes the HTTP context and route data.
+ The name of the controller.
+
+
+ Releases the specified controller.
+ The controller to release.
+
+
+ This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method.
+ The controller's session behavior.
+ The request context.
+ The controller name.
+
+
+ Maps a browser request to a data object. This class provides a concrete implementation of a model binder.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the model binders for the application.
+ The model binders for the application.
+
+
+ Binds the model by using the specified controller context and binding context.
+ The bound object.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider.
+ The parameter is null.
+
+
+ Binds the specified property by using the specified controller context and binding context and the specified property descriptor.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider.
+ Describes a property to be bound. The descriptor provides information such as the component type, property type, and property value. It also provides methods to get or set the property value.
+
+
+ Creates the specified model type by using the specified controller context and binding context.
+ A data object of the specified type.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider.
+ The type of the model object to return.
+
+
+ Creates an index (a subindex) based on a category of components that make up a larger index, where the specified index value is an integer.
+ The name of the subindex.
+ The prefix for the subindex.
+ The index value.
+
+
+ Creates an index (a subindex) based on a category of components that make up a larger index, where the specified index value is a string.
+ The name of the subindex.
+ The prefix for the subindex.
+ The index value.
+
+
+ Creates the name of the subproperty by using the specified prefix and property name.
+ The name of the subproperty.
+ The prefix for the subproperty.
+ The name of the property.
+
+
+ Returns a set of properties that match the property filter restrictions that are established by the specified .
+ An enumerable set of property descriptors.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider.
+
+
+ Returns the properties of the model by using the specified controller context and binding context.
+ A collection of property descriptors.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider.
+
+
+ Returns the value of a property using the specified controller context, binding context, property descriptor, and property binder.
+ An object that represents the property value.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider.
+ The descriptor for the property to access. The descriptor provides information such as the component type, property type, and property value. It also provides methods to get or set the property value.
+ An object that provides a way to bind the property.
+
+
+ Returns the descriptor object for a type that is specified by its controller context and binding context.
+ A custom type descriptor object.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider.
+
+
+ Determines whether a data model is valid for the specified binding context.
+ true if the model is valid; otherwise, false.
+ The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider.
+ The parameter is null.
+
+
+ Called when the model is updated.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider.
+
+
+ Called when the model is updating.
+ true if the model is updating; otherwise, false.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider.
+
+
+ Called when the specified property is validated.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider.
+ Describes a property to be validated. The descriptor provides information such as the component type, property type, and property value. It also provides methods to get or set the property value.
+ The value to set for the property.
+
+
+ Called when the specified property is validating.
+ true if the property is validating; otherwise, false.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider.
+ Describes a property being validated. The descriptor provides information such as component type, property type, and property value. It also provides methods to get or set the property value.
+ The value to set for the property.
+
+
+ Gets or sets the name of the resource file (class key) that contains localized string values.
+ The name of the resource file (class key).
+
+
+ Sets the specified property by using the specified controller context, binding context, and property value.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider.
+ Describes a property to be set. The descriptor provides information such as the component type, property type, and property value. It also provides methods to get or set the property value.
+ The value to set for the property.
+
+
+ Represents a memory cache for view locations.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using the specified cache time span.
+ The cache time span.
+ The Ticks attribute of the parameter is set to a negative number.
+
+
+ Retrieves the default view location by using the specified HTTP context and cache key.
+ The default view location.
+ The HTTP context.
+ The cache key
+ The parameter is null.
+
+
+ Inserts the view in the specified virtual path by using the specified HTTP context, cache key, and virtual path.
+ The HTTP context.
+ The cache key.
+ The virtual path
+ The parameter is null.
+
+
+ Creates an empty view location cache.
+
+
+ Gets or sets the cache time span.
+ The cache time span.
+
+
+ Provides a registration point for dependency resolvers that implement or the Common Service Locator IServiceLocator interface.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the implementation of the dependency resolver.
+ The implementation of the dependency resolver.
+
+
+ This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code.
+ The implementation of the dependency resolver.
+
+
+
+ This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code.
+ The common service locator.
+
+
+ This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code.
+ The object that implements the dependency resolver.
+
+
+
+ Provides a registration point for dependency resolvers using the provided common service locator when using a service locator interface.
+ The common service locator.
+
+
+ Provides a registration point for dependency resolvers, using the specified dependency resolver interface.
+ The dependency resolver.
+
+
+ Provides a type-safe implementation of and .
+
+
+ Resolves singly registered services that support arbitrary object creation.
+ The requested service or object.
+ The dependency resolver instance that this method extends.
+ The type of the requested service or object.
+
+
+ Resolves multiply registered services.
+ The requested services.
+ The dependency resolver instance that this method extends.
+ The type of the requested services.
+
+
+ Represents the base class for value providers whose values come from a collection that implements the interface.
+ The type of the value.
+
+
+ Initializes a new instance of the class.
+ The name/value pairs that are used to initialize the value provider.
+ Information about a specific culture, such as the names of the culture, the writing system, and the calendar used.
+ The parameter is null.
+
+
+ Determines whether the collection contains the specified prefix.
+ true if the collection contains the specified prefix; otherwise, false.
+ The prefix to search for.
+ The parameter is null.
+
+
+
+ Returns a value object using the specified key and controller context.
+ The value object for the specified key.
+ The key of the value object to retrieve.
+ The parameter is null.
+
+
+ Provides an empty metadata provider for data models that do not require metadata.
+
+
+ Initializes a new instance of the class.
+
+
+
+ Provides an empty validation provider for models that do not require a validator.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the empty model validator.
+ The empty model validator.
+ The metadata.
+ The context.
+
+
+ Represents a result that does nothing, such as a controller action method that returns nothing.
+
+
+ Initializes a new instance of the class.
+
+
+ Executes the specified result context.
+ The result context.
+
+
+ Provides the context for using the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class for the specified exception by using the specified controller context.
+ The controller context.
+ The exception.
+ The parameter is null.
+
+
+ Gets or sets the exception object.
+ The exception object.
+
+
+ Gets or sets a value that indicates whether the exception has been handled.
+ true if the exception has been handled; otherwise, false.
+
+
+ Gets or sets the action result.
+ The action result.
+
+
+ Provides a helper class to get the model name from an expression.
+
+
+ Gets the model name from a lambda expression.
+ The model name.
+ The expression.
+
+
+ Gets the model name from a string expression.
+ The model name.
+ The expression.
+
+
+ Provides a container for client-side field validation metadata.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the name of the data field.
+ The name of the data field.
+
+
+ Gets or sets a value that indicates whether the validation message contents should be replaced with the client validation error.
+ true if the validation message contents should be replaced with the client validation error; otherwise, false.
+
+
+ Gets or sets the validator message ID.
+ The validator message ID.
+
+
+ Gets the client validation rules.
+ The client validation rules.
+
+
+ Sends the contents of a binary file to the response.
+
+
+ Initializes a new instance of the class by using the specified file contents and content type.
+ The byte array to send to the response.
+ The content type to use for the response.
+ The parameter is null.
+
+
+ The binary content to send to the response.
+ The file contents.
+
+
+ Writes the file content to the response.
+ The response.
+
+
+ Sends the contents of a file to the response.
+
+
+ Initializes a new instance of the class by using the specified file name and content type.
+ The name of the file to send to the response.
+ The content type of the response.
+ The parameter is null or empty.
+
+
+ Gets or sets the path of the file that is sent to the response.
+ The path of the file that is sent to the response.
+
+
+ Writes the file to the response.
+ The response.
+
+
+ Represents a base class that is used to send binary file content to the response.
+
+
+ Initializes a new instance of the class.
+ The type of the content.
+ The parameter is null or empty.
+
+
+ Gets the content type to use for the response.
+ The type of the content.
+
+
+ Enables processing of the result of an action method by a custom type that inherits from the class.
+ The context within which the result is executed.
+ The parameter is null.
+
+
+ Gets or sets the content-disposition header so that a file-download dialog box is displayed in the browser with the specified file name.
+ The name of the file.
+
+
+ Writes the file to the response.
+ The response.
+
+
+ Sends binary content to the response by using a instance.
+
+
+ Initializes a new instance of the class.
+ The stream to send to the response.
+ The content type to use for the response.
+ The parameter is null.
+
+
+ Gets the stream that will be sent to the response.
+ The file stream.
+
+
+ Writes the file to the response.
+ The response.
+
+
+ Represents a metadata class that contains a reference to the implementation of one or more of the filter interfaces, the filter's order, and the filter's scope.
+
+
+ Initializes a new instance of the class.
+ The instance.
+ The scope.
+ The order.
+
+
+ Represents a constant that is used to specify the default ordering of filters.
+
+
+ Gets the instance of this class.
+ The instance of this class.
+
+
+ Gets the order in which the filter is applied.
+ The order in which the filter is applied.
+
+
+ Gets the scope ordering of the filter.
+ The scope ordering of the filter.
+
+
+ Represents the base class for action and result filter attributes.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a value that indicates whether more than one instance of the filter attribute can be specified.
+ true if more than one instance of the filter attribute can be specified; otherwise, false.
+
+
+ Gets or sets the order in which the action filters are executed.
+ The order in which the action filters are executed.
+
+
+ Defines a filter provider for filter attributes.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class and optionally caches attribute instances.
+ true to cache attribute instances; otherwise, false.
+
+
+ Gets a collection of custom action attributes.
+ A collection of custom action attributes.
+ The controller context.
+ The action descriptor.
+
+
+ Gets a collection of controller attributes.
+ A collection of controller attributes.
+ The controller context.
+ The action descriptor.
+
+
+ Aggregates the filters from all of the filter providers into one collection.
+ The collection filters from all of the filter providers.
+ The controller context.
+ The action descriptor.
+
+
+ Encapsulates information about the available action filters.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the specified filters collection.
+ The filters collection.
+
+
+ Gets all the action filters in the application.
+ The action filters.
+
+
+ Gets all the authorization filters in the application.
+ The authorization filters.
+
+
+ Gets all the exception filters in the application.
+ The exception filters.
+
+
+ Gets all the result filters in the application.
+ The result filters.
+
+
+ Represents the collection of filter providers for the application.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the filter providers collection.
+ The filter providers collection.
+
+
+ Returns the collection of filter providers.
+ The collection of filter providers.
+ The controller context.
+ The action descriptor.
+
+
+ Provides a registration point for filters.
+
+
+ Provides a registration point for filters.
+ The collection of filters.
+
+
+ Defines values that specify the order in which ASP.NET MVC filters run within the same filter type and filter order.
+
+
+ Specifies first.
+
+
+ Specifies an order before and after .
+
+
+ Specifies an order before and after .
+
+
+ Specifies an order before and after .
+
+
+ Specifies last.
+
+
+ Contains the form value providers for the application.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The collection.
+ The parameter is null.
+
+
+ Gets the specified value provider.
+ The value provider.
+ The name of the value provider to get.
+ The parameter is null or empty.
+
+
+ Gets a value that indicates whether the value provider contains an entry that has the specified prefix.
+ true if the value provider contains an entry that has the specified prefix; otherwise, false.
+ The prefix to look for.
+
+
+ Gets a value from a value provider using the specified key.
+ A value from a value provider.
+ The key.
+
+
+ Returns a dictionary that contains the value providers.
+ A dictionary of value providers.
+
+
+ Encapsulates information that is required in order to validate and process the input data from an HTML form.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the field validators for the form.
+ A dictionary of field validators for the form.
+
+
+ Gets or sets the form identifier.
+ The form identifier.
+
+
+ Returns a serialized object that contains the form identifier and field-validation values for the form.
+ A serialized object that contains the form identifier and field-validation values for the form.
+
+
+ Returns the validation value for the specified input field.
+ The value to validate the field input with.
+ The name of the field to retrieve the validation value for.
+ The parameter is either null or empty.
+
+
+ Returns the validation value for the specified input field and a value that indicates what to do if the validation value is not found.
+ The value to validate the field input with.
+ The name of the field to retrieve the validation value for.
+ true to create a validation value if one is not found; otherwise, false.
+ The parameter is either null or empty.
+
+
+ Returns a value that indicates whether the specified field has been rendered in the form.
+ true if the field has been rendered; otherwise, false.
+ The field name.
+
+
+ Sets a value that indicates whether the specified field has been rendered in the form.
+ The field name.
+ true to specify that the field has been rendered in the form; otherwise, false.
+
+
+ Determines whether client validation errors should be dynamically added to the validation summary.
+ true if client validation errors should be added to the validation summary; otherwise, false.
+
+
+ Gets or sets the identifier for the validation summary.
+ The identifier for the validation summary.
+
+
+ Enumerates the HTTP request types for a form.
+
+
+ Specifies a GET request.
+
+
+ Specifies a POST request.
+
+
+ Represents a value provider for form values that are contained in a object.
+
+
+ Initializes a new instance of the class.
+ An object that encapsulates information about the current HTTP request.
+
+
+ Represents a class that is responsible for creating a new instance of a form-value provider object.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns a form-value provider object for the specified controller context.
+ A form-value provider object.
+ An object that encapsulates information about the current HTTP request.
+ The parameter is null.
+
+
+ Represents a class that contains all the global filters.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds the specified filter to the global filter collection.
+ The filter.
+
+
+ Adds the specified filter to the global filter collection using the specified filter run order.
+ The filter.
+ The filter run order.
+
+
+ Removes all filters from the global filter collection.
+
+
+ Determines whether a filter is in the global filter collection.
+ true if is found in the global filter collection; otherwise, false.
+ The filter.
+
+
+ Gets the number of filters in the global filter collection.
+ The number of filters in the global filter collection.
+
+
+ Returns an enumerator that iterates through the global filter collection.
+ An enumerator that iterates through the global filter collection.
+
+
+ Removes all the filters that match the specified filter.
+ The filter to remove.
+
+
+ This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code.
+ An enumerator that iterates through the global filter collection.
+
+
+ This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code.
+ An enumerator that iterates through the global filter collection.
+ The controller context.
+ The action descriptor.
+
+
+ Represents the global filter collection.
+
+
+ Gets or sets the global filter collection.
+ The global filter collection.
+
+
+ Represents an attribute that is used to handle an exception that is thrown by an action method.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the type of the exception.
+ The type of the exception.
+
+
+ Gets or sets the master view for displaying exception information.
+ The master view.
+
+
+ Called when an exception occurs.
+ The action-filter context.
+ The parameter is null.
+
+
+ Gets the unique identifier for this attribute.
+ The unique identifier for this attribute.
+
+
+ Gets or sets the page view for displaying exception information.
+ The page view.
+
+
+ Encapsulates information for handling an error that was thrown by an action method.
+
+
+ Initializes a new instance of the class.
+ The exception.
+ The name of the controller.
+ The name of the action.
+ The parameter is null.
+ The or parameter is null or empty.
+
+
+ Gets or sets the name of the action that was executing when the exception was thrown.
+ The name of the action.
+
+
+ Gets or sets the name of the controller that contains the action method that threw the exception.
+ The name of the controller.
+
+
+ Gets or sets the exception object.
+ The exception object.
+
+
+ Represents an attribute that is used to indicate whether a property or field value should be rendered as a hidden input element.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a value that indicates whether to display the value of the hidden input element.
+ true if the value should be displayed; otherwise, false.
+
+
+ Represents support for rendering HTML controls in a view.
+
+
+ Initializes a new instance of the class by using the specified view context and view data container.
+ The view context.
+ The view data container.
+ The or the parameter is null.
+
+
+ Initializes a new instance of the class by using the specified view context, view data container, and route collection.
+ The view context.
+ The view data container.
+ The route collection.
+ One or more parameters is null.
+
+
+ Replaces underscore characters (_) with hyphens (-) in the specified HTML attributes.
+ The HTML attributes with underscore characters replaced by hyphens.
+ The HTML attributes.
+
+
+ Generates a hidden form field (anti-forgery token) that is validated when the form is submitted.
+ The generated form field (anti-forgery token).
+
+
+ Generates a hidden form field (anti-forgery token) that is validated when the form is submitted. The field value is generated using the specified salt value.
+ The generated form field (anti-forgery token).
+ The salt value, which can be any non-empty string.
+
+
+ Generates a hidden form field (anti-forgery token) that is validated when the form is submitted. The field value is generated using the specified salt value, domain, and path.
+ The generated form field (anti-forgery token).
+ The salt value, which can be any non-empty string.
+ The application domain.
+ The virtual path.
+
+
+ Converts the specified attribute object to an HTML-encoded string.
+ The HTML-encoded string. If the value parameter is null or empty, this method returns an empty string.
+ The object to encode.
+
+
+ Converts the specified attribute string to an HTML-encoded string.
+ The HTML-encoded string. If the value parameter is null or empty, this method returns an empty string.
+ The string to encode.
+
+
+ Gets or sets a value that indicates whether client validation is enabled.
+ true if enable client validation is enabled; otherwise, false.
+
+
+ Enables input validation that is performed by using client script in the browser.
+
+
+ Enables or disables client validation.
+ true to enable client validation; otherwise, false.
+
+
+ Enables unobtrusive JavaScript.
+
+
+ Enables or disables unobtrusive JavaScript.
+ true to enable unobtrusive JavaScript; otherwise, false.
+
+
+ Converts the value of the specified object to an HTML-encoded string.
+ The HTML-encoded string.
+ The object to encode.
+
+
+ Converts the specified string to an HTML-encoded string.
+ The HTML-encoded string.
+ The string to encode.
+
+
+
+ Creates an HTML element ID using the specified element name.
+ The ID of the HTML element.
+ The name of the HTML element.
+ The parameter is null.
+
+
+ Creates an HTML element ID using the specified element name and a string that replaces dots in the name.
+ The ID of the HTML element.
+ The name of the HTML element.
+ The string that replaces dots (.) in the parameter.
+ The parameter or the parameter is null.
+
+
+ Generates an HTML anchor element (a element) that links to the specified action method, and enables the user to specify the communication protocol, name of the host, and a URL fragment.
+ An HTML element that links to the specified action method.
+ The context of the HTTP request.
+ The collection of URL routes.
+ The text caption to display for the link.
+ The name of the route that is used to return a virtual path.
+ The name of the action method.
+ The name of the controller.
+ The communication protocol, such as HTTP or HTTPS. If this parameter is null, the protocol defaults to HTTP.
+ The name of the host.
+ The fragment identifier.
+ An object that contains the parameters for a route.
+ An object that contains the HTML attributes for the element.
+
+
+ Generates an HTML anchor element (a element) that links to the specified action method.
+ An HTML element that links to the specified action method.
+ The context of the HTTP request.
+ The collection of URL routes.
+ The text caption to display for the link.
+ The name of the route that is used to return a virtual path.
+ The name of the action method.
+ The name of the controller.
+ An object that contains the parameters for a route.
+ An object that contains the HTML attributes for the element.
+
+
+ Generates an HTML anchor element (a element) that links to the specified URL route, and enables the user to specify the communication protocol, name of the host, and a URL fragment.
+ An HTML element that links to the specified URL route.
+ The context of the HTTP request.
+ The collection of URL routes.
+ The text caption to display for the link.
+ The name of the route that is used to return a virtual path.
+ The communication protocol, such as HTTP or HTTPS. If this parameter is null, the protocol defaults to HTTP.
+ The name of the host.
+ The fragment identifier.
+ An object that contains the parameters for a route.
+ An object that contains the HTML attributes for the element.
+
+
+ Generates an HTML anchor element (a element) that links to the specified URL route.
+ An HTML element that links to the specified URL route.
+ The context of the HTTP request.
+ The collection of URL routes.
+ The text caption to display for the link.
+ The name of the route that is used to return a virtual path.
+ An object that contains the parameters for a route.
+ An object that contains the HTML attributes for the element.
+
+
+ Returns the HTTP method that handles form input (GET or POST) as a string.
+ The form method string, either "get" or "post".
+ The HTTP method that handles the form.
+
+
+ Returns the HTML input control type as a string.
+ The input type string ("checkbox", "hidden", "password", "radio", or "text").
+ The enumerated input type.
+
+
+ Gets the collection of unobtrusive JavaScript validation attributes using the specified HTML name attribute.
+ The collection of unobtrusive JavaScript validation attributes.
+ The HTML name attribute.
+
+
+ Gets the collection of unobtrusive JavaScript validation attributes using the specified HTML name attribute and model metadata.
+ The collection of unobtrusive JavaScript validation attributes.
+ The HTML name attribute.
+ The model metadata.
+
+
+ Returns a hidden input element that identifies the override method for the specified HTTP data-transfer method that was used by the client.
+ The override method that uses the HTTP data-transfer method that was used by the client.
+ The HTTP data-transfer method that was used by the client (DELETE, HEAD, or PUT).
+ The parameter is not "PUT", "DELETE", or "HEAD".
+
+
+ Returns a hidden input element that identifies the override method for the specified verb that represents the HTTP data-transfer method used by the client.
+ The override method that uses the verb that represents the HTTP data-transfer method used by the client.
+ The verb that represents the HTTP data-transfer method used by the client.
+ The parameter is not "PUT", "DELETE", or "HEAD".
+
+
+ Gets or sets the character that replaces periods in the ID attribute of an element.
+ The character that replaces periods in the ID attribute of an element.
+
+
+
+ Returns markup that is not HTML encoded.
+ The HTML markup without encoding.
+ The HTML markup.
+
+
+ Gets or sets the collection of routes for the application.
+ The collection of routes for the application.
+
+
+ Gets or sets a value that indicates whether unobtrusive JavaScript is enabled.
+ true if unobtrusive JavaScript is enabled; otherwise, false.
+
+
+ The name of the CSS class that is used to style an input field when a validation error occurs.
+
+
+ The name of the CSS class that is used to style an input field when the input is valid.
+
+
+ The name of the CSS class that is used to style the error message when a validation error occurs.
+
+
+ The name of the CSS class that is used to style the validation message when the input is valid.
+
+
+ The name of the CSS class that is used to style validation summary error messages.
+
+
+ The name of the CSS class that is used to style the validation summary when the input is valid.
+
+
+
+ Gets or sets the context information about the view.
+ The context of the view.
+
+
+ Gets the current view data dictionary.
+ The view data dictionary.
+
+
+ Gets or sets the view data container.
+ The view data container.
+
+
+ Represents support for rendering HTML controls in a strongly typed view.
+ The type of the model.
+
+
+ Initializes a new instance of the class by using the specified view context and view data container.
+ The view context.
+ The view data container.
+
+
+ Initializes a new instance of the class by using the specified view context, view data container, and route collection.
+ The view context.
+ The view data container.
+ The route collection.
+
+
+
+ Gets the strongly typed view data dictionary.
+ The strongly typed view data dictionary.
+
+
+ Represents an attribute that is used to restrict an action method so that the method handles only HTTP DELETE requests.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether a request is a valid HTTP DELETE request.
+ true if the request is valid; otherwise, false.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ Encapsulates information about a method, such as its type, return type, and arguments.
+
+
+ Represents a value provider to use with values that come from a collection of HTTP files.
+
+
+ Initializes a new instance of the class.
+ An object that encapsulates information about the current HTTP request.
+
+
+ Represents a class that is responsible for creating a new instance of an HTTP file collection value provider object.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns a value provider object for the specified controller context.
+ An HTTP file collection value provider.
+ An object that encapsulates information about the HTTP request.
+ The parameter is null.
+
+
+ Represents an attribute that is used to restrict an action method so that the method handles only HTTP GET requests.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether a request is a valid HTTP GET request.
+ true if the request is valid; otherwise, false.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ Encapsulates information about a method, such as its type, return type, and arguments.
+
+
+ Defines an object that is used to indicate that the requested resource was not found.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using a status description.
+ The status description.
+
+
+ Represents an attribute that is used to restrict an action method so that the method handles only HTTP POST requests.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether a request is a valid HTTP POST request.
+ true if the request is valid; otherwise, false.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ Encapsulates information about a method, such as its type, return type, and arguments.
+
+
+ Binds a model to a posted file.
+
+
+ Initializes a new instance of the class.
+
+
+ Binds the model.
+ The bound value.
+ The controller context.
+ The binding context.
+ One or both parameters are null.
+
+
+ Represents an attribute that is used to restrict an action method so that the method handles only HTTP PUT requests.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether a request is a valid HTTP PUT request.
+ true if the request is valid; otherwise, false.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ Encapsulates information about a method, such as its type, return type, and arguments.
+
+
+ Extends the class that contains the HTTP values that were sent by a client during a Web request.
+
+
+ Retrieves the HTTP data-transfer method override that was used by the client.
+ The HTTP data-transfer method override that was used by the client.
+ An object that contains the HTTP values that were sent by a client during a Web request.
+ The parameter is null.
+ The HTTP data-transfer method override was not implemented.
+
+
+ Provides a way to return an action result with a specific HTTP response status code and description.
+
+
+ Initializes a new instance of the class using a status code.
+ The status code.
+
+
+ Initializes a new instance of the class using a status code and status description.
+ The status code.
+ The status description.
+
+
+
+
+ Enables processing of the result of an action method by a custom type that inherits from the class.
+ The context in which the result is executed. The context information includes the controller, HTTP content, request context, and route data.
+
+
+ Gets the HTTP status code.
+ The HTTP status code.
+
+
+ Gets the HTTP status description.
+ the HTTP status description.
+
+
+ Represents the result of an unauthorized HTTP request.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the status description.
+ The status description.
+
+
+ Enumerates the HTTP verbs.
+
+
+ Retrieves the information or entity that is identified by the URI of the request.
+
+
+ Posts a new entity as an addition to a URI.
+
+
+ Replaces an entity that is identified by a URI.
+
+
+ Requests that a specified URI be deleted.
+
+
+ Retrieves the message headers for the information or entity that is identified by the URI of the request.
+
+
+ Defines the methods that are used in an action filter.
+
+
+ Called after the action method executes.
+ The filter context.
+
+
+ Called before an action method executes.
+ The filter context.
+
+
+ Defines the contract for an action invoker, which is used to invoke an action in response to an HTTP request.
+
+
+ Invokes the specified action by using the specified controller context.
+ true if the action was found; otherwise, false.
+ The controller context.
+ The name of the action.
+
+
+ Defines the methods that are required for an authorization filter.
+
+
+ Called when authorization is required.
+ The filter context.
+
+
+ Provides a way for the ASP.NET MVC validation framework to discover at run time whether a validator has support for client validation.
+
+
+ When implemented in a class, returns client validation rules for that class.
+ The client validation rules for this validator.
+ The model metadata.
+ The controller context.
+
+
+ Defines the methods that are required for a controller.
+
+
+ Executes the specified request context.
+ The request context.
+
+
+ Provides fine-grained control over how controllers are instantiated using dependency injection.
+
+
+ When implemented in a class, creates a controller.
+ The created controller.
+ The request context.
+ The controller type.
+
+
+ Defines the methods that are required for a controller factory.
+
+
+ Creates the specified controller by using the specified request context.
+ The controller.
+ The request context.
+ The name of the controller.
+
+
+ Gets the controller's session behavior.
+ The controller's session behavior.
+ The request context.
+ The name of the controller whose session behavior you want to get.
+
+
+ Releases the specified controller.
+ The controller.
+
+
+ Defines the methods that simplify service location and dependency resolution.
+
+
+ Resolves singly registered services that support arbitrary object creation.
+ The requested service or object.
+ The type of the requested service or object.
+
+
+ Resolves multiply registered services.
+ The requested services.
+ The type of the requested services.
+
+
+ Represents a special IValueProvider that has the ability to be enumerable.
+
+
+ Gets the keys from the prefix.
+ The keys.
+ The prefix.
+
+
+ Defines the methods that are required for an exception filter.
+
+
+ Called when an exception occurs.
+ The filter context.
+
+
+ Provides an interface for finding filters.
+
+
+ Returns an enumerator that contains all the instances in the service locator.
+ The enumerator that contains all the instances in the service locator.
+ The controller context.
+ The action descriptor.
+
+
+ Provides an interface for exposing attributes to the class.
+
+
+ When implemented in a class, provides metadata to the model metadata creation process.
+ The model metadata.
+
+
+ Defines the methods that are required for a model binder.
+
+
+ Binds the model to a value by using the specified controller context and binding context.
+ The bound value.
+ The controller context.
+ The binding context.
+
+
+ Defines methods that enable dynamic implementations of model binding for classes that implement the interface.
+
+
+ Returns the model binder for the specified type.
+ The model binder for the specified type.
+ The type of the model.
+
+
+ Defines members that specify the order of filters and whether multiple filters are allowed.
+
+
+ When implemented in a class, gets or sets a value that indicates whether multiple filters are allowed.
+ true if multiple filters are allowed; otherwise, false.
+
+
+ When implemented in a class, gets the filter order.
+ The filter order.
+
+
+ Enumerates the types of input controls.
+
+
+ A check box.
+
+
+ A hidden field.
+
+
+ A password box.
+
+
+ A radio button.
+
+
+ A text box.
+
+
+ Defines the methods that are required for a result filter.
+
+
+ Called after an action result executes.
+ The filter context.
+
+
+ Called before an action result executes.
+ The filter context.
+
+
+ Associates a route with an area in an ASP.NET MVC application.
+
+
+ Gets the name of the area to associate the route with.
+ The name of the area to associate the route with.
+
+
+ Defines the contract for temporary-data providers that store data that is viewed on the next request.
+
+
+ Loads the temporary data.
+ The temporary data.
+ The controller context.
+
+
+ Saves the temporary data.
+ The controller context.
+ The values.
+
+
+ Represents an interface that can skip request validation.
+
+
+ Retrieves the value of the object that is associated with the specified key.
+ The value of the object for the specified key.
+ The key.
+ true if validation should be skipped; otherwise, false.
+
+
+ Defines the methods that are required for a value provider in ASP.NET MVC.
+
+
+ Determines whether the collection contains the specified prefix.
+ true if the collection contains the specified prefix; otherwise, false.
+ The prefix to search for.
+
+
+ Retrieves a value object using the specified key.
+ The value object for the specified key.
+ The key of the value object to retrieve.
+
+
+ Defines the methods that are required for a view.
+
+
+ Renders the specified view context by using the specified the writer object.
+ The view context.
+ The writer object.
+
+
+ Defines the methods that are required for a view data dictionary.
+
+
+ Gets or sets the view data dictionary.
+ The view data dictionary.
+
+
+ Defines the methods that are required for a view engine.
+
+
+ Finds the specified partial view by using the specified controller context.
+ The partial view.
+ The controller context.
+ The name of the partial view.
+ true to specify that the view engine returns the cached view, if a cached view exists; otherwise, false.
+
+
+ Finds the specified view by using the specified controller context.
+ The page view.
+ The controller context.
+ The name of the view.
+ The name of the master.
+ true to specify that the view engine returns the cached view, if a cached view exists; otherwise, false.
+
+
+ Releases the specified view by using the specified controller context.
+ The controller context.
+ The view.
+
+
+ Defines the methods that are required in order to cache view locations in memory.
+
+
+ Gets the view location by using the specified HTTP context and the cache key.
+ The view location.
+ The HTTP context.
+ The cache key.
+
+
+ Inserts the specified view location into the cache by using the specified HTTP context and the cache key.
+ The HTTP context.
+ The cache key.
+ The virtual path.
+
+
+ Provides fine-grained control over how view pages are created using dependency injection.
+
+
+ Provides fine-grained control over how view pages are created using dependency injection.
+ The created view page.
+ The controller context.
+ The type of the controller.
+
+
+ Sends JavaScript content to the response.
+
+
+ Initializes a new instance of the class.
+
+
+ Enables processing of the result of an action method by a custom type that inherits from the class.
+ The context within which the result is executed.
+ The parameter is null.
+
+
+ Gets or sets the script.
+ The script.
+
+
+ Specifies whether HTTP GET requests from the client are allowed.
+
+
+ HTTP GET requests from the client are allowed.
+
+
+ HTTP GET requests from the client are not allowed.
+
+
+ Represents a class that is used to send JSON-formatted content to the response.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the content encoding.
+ The content encoding.
+
+
+ Gets or sets the type of the content.
+ The type of the content.
+
+
+ Gets or sets the data.
+ The data.
+
+
+ Enables processing of the result of an action method by a custom type that inherits from the class.
+ The context within which the result is executed.
+ The parameter is null.
+
+
+ Gets or sets a value that indicates whether HTTP GET requests from the client are allowed.
+ A value that indicates whether HTTP GET requests from the client are allowed.
+
+
+
+
+ Enables action methods to send and receive JSON-formatted text and to model-bind the JSON text to parameters of action methods.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns a JSON value-provider object for the specified controller context.
+ A JSON value-provider object for the specified controller context.
+ The controller context.
+
+
+ Maps a browser request to a LINQ object.
+
+
+ Initializes a new instance of the class.
+
+
+ Binds the model by using the specified controller context and binding context.
+ The bound data object. If the model cannot be bound, this method returns null.
+ The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data.
+ The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider.
+
+
+ Represents an attribute that is used to associate a model type to a model-builder type.
+
+
+ Initializes a new instance of the class.
+ The type of the binder.
+ The parameter is null.
+
+
+ Gets or sets the type of the binder.
+ The type of the binder.
+
+
+ Retrieves an instance of the model binder.
+ A reference to an object that implements the interface.
+ An error occurred while an instance of the model binder was being created.
+
+
+ Represents a class that contains all model binders for the application, listed by binder type.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds the specified item to the model binder dictionary.
+ The object to add to the instance.
+ The object is read-only.
+
+
+ Adds the specified item to the model binder dictionary using the specified key.
+ The key of the element to add.
+ The value of the element to add.
+ The object is read-only.
+
+ is null.
+ An element that has the same key already exists in the object.
+
+
+ Removes all items from the model binder dictionary.
+ The object is read-only.
+
+
+ Determines whether the model binder dictionary contains a specified value.
+ true if is found in the model binder dictionary; otherwise, false.
+ The object to locate in the object.
+
+
+ Determines whether the model binder dictionary contains an element that has the specified key.
+ true if the model binder dictionary contains an element that has the specified key; otherwise, false.
+ The key to locate in the object.
+
+ is null.
+
+
+ Copies the elements of the model binder dictionary to an array, starting at a specified index.
+ The one-dimensional array that is the destination of the elements copied from . The array must have zero-based indexing.
+ The zero-based index in at which copying starts.
+
+ is null.
+
+ is less than 0.
+
+ is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source object is greater than the available space from to the end of the destination array. -or- Type cannot be cast automatically to the type of the destination array.
+
+
+ Gets the number of elements in the model binder dictionary.
+ The number of elements in the model binder dictionary.
+
+
+ Gets or sets the default model binder.
+ The default model binder.
+
+
+ Retrieves the model binder for the specified type.
+ The model binder.
+ The type of the model to retrieve.
+ The parameter is null.
+
+
+ Retrieves the model binder for the specified type or retrieves the default model binder.
+ The model binder.
+ The type of the model to retrieve.
+ true to retrieve the default model binder.
+ The parameter is null.
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Gets a value that indicates whether the model binder dictionary is read-only.
+ true if the model binder dictionary is read-only; otherwise, false.
+
+
+ Gets or sets the specified key in an object that implements the interface.
+ The key for the specified item.
+ The item key.
+
+
+ Gets a collection that contains the keys in the model binder dictionary.
+ A collection that contains the keys in the model binder dictionary.
+
+
+ Removes the first occurrence of the specified element from the model binder dictionary.
+ true if was successfully removed from the model binder dictionary; otherwise, false. This method also returns false if is not found in the model binder dictionary.
+ The object to remove from the object.
+ The object is read-only.
+
+
+ Removes the element that has the specified key from the model binder dictionary.
+ true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the model binder dictionary.
+ The key of the element to remove.
+ The object is read-only.
+
+ is null.
+
+
+ Returns an enumerator that can be used to iterate through a collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Gets the value that is associated with the specified key.
+ true if the object that implements contains an element that has the specified key; otherwise, false.
+ The key of the value to get.
+ When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized.
+
+ is null.
+
+
+ Gets a collection that contains the values in the model binder dictionary.
+ A collection that contains the values in the model binder dictionary.
+
+
+ Provides a container for model binder providers.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using a list of model binder providers.
+ A list of model binder providers.
+
+
+ Returns a model binder of the specified type.
+ A model binder of the specified type.
+ The type of the model binder.
+
+
+ Inserts a model binder provider into the at the specified index.
+ The index.
+ The model binder provider.
+
+
+ Replaces the model binder provider element at the specified index.
+ The index.
+ The model binder provider.
+
+
+ Provides a container for model binder providers.
+
+
+ Provides a registration point for model binder providers for applications that do not use dependency injection.
+ The model binder provider collection.
+
+
+ Provides global access to the model binders for the application.
+
+
+ Gets the model binders for the application.
+ The model binders for the application.
+
+
+ Provides the context in which a model binder functions.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the binding context.
+ The binding context.
+
+
+ Gets or sets a value that indicates whether the binder should use an empty prefix.
+ true if the binder should use an empty prefix; otherwise, false.
+
+
+ Gets or sets the model.
+ The model.
+
+
+ Gets or sets the model metadata.
+ The model metadata.
+
+
+ Gets or sets the name of the model.
+ The name of the model.
+
+
+ Gets or sets the state of the model.
+ The state of the model.
+
+
+ Gets or sets the type of the model.
+ The type of the model.
+
+
+ Gets or sets the property filter.
+ The property filter.
+
+
+ Gets the property metadata.
+ The property metadata.
+
+
+ Gets or sets the value provider.
+ The value provider.
+
+
+ Represents an error that occurs during model binding.
+
+
+ Initializes a new instance of the class by using the specified exception.
+ The exception.
+ The parameter is null.
+
+
+ Initializes a new instance of the class by using the specified exception and error message.
+ The exception.
+ The error message.
+ The parameter is null.
+
+
+ Initializes a new instance of the class by using the specified error message.
+ The error message.
+
+
+ Gets or sets the error message.
+ The error message.
+
+
+ Gets or sets the exception object.
+ The exception object.
+
+
+ A collection of instances.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds the specified object to the model-error collection.
+ The exception.
+
+
+ Adds the specified error message to the model-error collection.
+ The error message.
+
+
+ Provides a container for common metadata, for the class, and for the class for a data model.
+
+
+
+ Gets a dictionary that contains additional metadata about the model.
+ A dictionary that contains additional metadata about the model.
+
+
+ Gets or sets the type of the container for the model.
+ The type of the container for the model.
+
+
+ Gets or sets a value that indicates whether empty strings that are posted back in forms should be converted to null.
+ true if empty strings that are posted back in forms should be converted to null; otherwise, false. The default value is true.
+
+
+ Gets or sets meta information about the data type.
+ Meta information about the data type.
+
+
+ The default order value, which is 10000.
+
+
+ Gets or sets the description of the model.
+ The description of the model. The default value is null.
+
+
+ Gets or sets the display format string for the model.
+ The display format string for the model.
+
+
+ Gets or sets the display name of the model.
+ The display name of the model.
+
+
+ Gets or sets the edit format string of the model.
+ The edit format string of the model.
+
+
+
+
+
+
+ Gets the metadata from the expression parameter for the model.
+ The metadata for the model.
+ An expression that identifies the model.
+ The view data dictionary.
+
+
+ Gets the display name for the model.
+ The display name for the model.
+
+
+ Returns the simple description of the model.
+ The simple description of the model.
+
+
+ Gets a list of validators for the model.
+ A list of validators for the model.
+ The controller context.
+
+
+ Gets or sets a value that indicates whether the model object should be rendered using associated HTML elements.
+ true if the associated HTML elements that contains the model object should be included with the object; otherwise, false.
+
+
+ Gets or sets a value that indicates whether the model is a complex type.
+ A value that indicates whether the model is considered a complex type by the MVC framework.
+
+
+ Gets a value that indicates whether the type is nullable.
+ true if the type is nullable; otherwise, false.
+
+
+ Gets or sets a value that indicates whether the model is read-only.
+ true if the model is read-only; otherwise, false.
+
+
+ Gets or sets a value that indicates whether the model is required.
+ true if the model is required; otherwise, false.
+
+
+ Gets the value of the model.
+ The value of the model. For more information about , see the entry ASP.NET MVC 2 Templates, Part 2: ModelMetadata on Brad Wilson's blog
+
+
+ Gets the type of the model.
+ The type of the model.
+
+
+ Gets or sets the string to display for null values.
+ The string to display for null values.
+
+
+ Gets or sets a value that represents order of the current metadata.
+ The order value of the current metadata.
+
+
+ Gets a collection of model metadata objects that describe the properties of the model.
+ A collection of model metadata objects that describe the properties of the model.
+
+
+ Gets the property name.
+ The property name.
+
+
+ Gets or sets the provider.
+ The provider.
+
+
+ Gets or sets a value that indicates whether request validation is enabled.
+ true if request validation is enabled; otherwise, false.
+
+
+ Gets or sets a short display name.
+ The short display name.
+
+
+ Gets or sets a value that indicates whether the property should be displayed in read-only views such as list and detail views.
+ true if the model should be displayed in read-only views; otherwise, false.
+
+
+ Gets or sets a value that indicates whether the model should be displayed in editable views.
+ true if the model should be displayed in editable views; otherwise, false.
+
+
+ Gets or sets the simple display string for the model.
+ The simple display string for the model.
+
+
+ Gets or sets a hint that suggests what template to use for this model.
+ A hint that suggests what template to use for this model.
+
+
+ Gets or sets a value that can be used as a watermark.
+ The watermark.
+
+
+ Provides an abstract base class for a custom metadata provider.
+
+
+ When overridden in a derived class, initializes a new instance of the object that derives from the class.
+
+
+ Gets a object for each property of a model.
+ A object for each property of a model.
+ The container.
+ The type of the container.
+
+
+
+
+ Provides a container for the current instance.
+
+
+ Gets or sets the current object.
+ The current object.
+
+
+ Encapsulates the state of model binding to a property of an action-method argument, or to the argument itself.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns a object that contains any errors that occurred during model binding.
+ The errors.
+
+
+ Returns a object that encapsulates the value that was being bound during model binding.
+ The value.
+
+
+ Represents the state of an attempt to bind a posted form to an action method, which includes validation information.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using values that are copied from the specified model-state dictionary.
+ The model-state dictionary.
+ The parameter is null.
+
+
+ Adds the specified item to the model-state dictionary.
+ The object to add to the model-state dictionary.
+ The model-state dictionary is read-only.
+
+
+ Adds an element that has the specified key and value to the model-state dictionary.
+ The key of the element to add.
+ The value of the element to add.
+ The model-state dictionary is read-only.
+
+ is null.
+ An element that has the specified key already occurs in the model-state dictionary.
+
+
+ Adds the specified model error to the errors collection for the model-state dictionary that is associated with the specified key.
+ The key.
+ The exception.
+
+
+ Adds the specified error message to the errors collection for the model-state dictionary that is associated with the specified key.
+ The key.
+ The error message.
+
+
+ Removes all items from the model-state dictionary.
+ The model-state dictionary is read-only.
+
+
+ Determines whether the model-state dictionary contains a specific value.
+ true if is found in the model-state dictionary; otherwise, false.
+ The object to locate in the model-state dictionary.
+
+
+ Determines whether the model-state dictionary contains the specified key.
+ true if the model-state dictionary contains the specified key; otherwise, false.
+ The key to locate in the model-state dictionary.
+
+
+ Copies the elements of the model-state dictionary to an array, starting at a specified index.
+ The one-dimensional array that is the destination of the elements copied from the object. The array must have zero-based indexing.
+ The zero-based index in at which copying starts.
+
+ is null.
+
+ is less than 0.
+
+ is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source collection is greater than the available space from to the end of the destination .-or- Type cannot be cast automatically to the type of the destination .
+
+
+ Gets the number of key/value pairs in the collection.
+ The number of key/value pairs in the collection.
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Gets a value that indicates whether the collection is read-only.
+ true if the collection is read-only; otherwise, false.
+
+
+ Gets a value that indicates whether this instance of the model-state dictionary is valid.
+ true if this instance is valid; otherwise, false.
+
+
+ Determines whether there are any objects that are associated with or prefixed with the specified key.
+ true if the model-state dictionary contains a value that is associated with the specified key; otherwise, false.
+ The key.
+ The parameter is null.
+
+
+ Gets or sets the value that is associated with the specified key.
+ The model state item.
+ The key.
+
+
+ Gets a collection that contains the keys in the dictionary.
+ A collection that contains the keys of the model-state dictionary.
+
+
+ Copies the values from the specified object into this dictionary, overwriting existing values if keys are the same.
+ The dictionary.
+
+
+ Removes the first occurrence of the specified object from the model-state dictionary.
+ true if was successfully removed the model-state dictionary; otherwise, false. This method also returns false if is not found in the model-state dictionary.
+ The object to remove from the model-state dictionary.
+ The model-state dictionary is read-only.
+
+
+ Removes the element that has the specified key from the model-state dictionary.
+ true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the model-state dictionary.
+ The key of the element to remove.
+ The model-state dictionary is read-only.
+
+ is null.
+
+
+ Sets the value for the specified key by using the specified value provider dictionary.
+ The key.
+ The value.
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Attempts to gets the value that is associated with the specified key.
+ true if the object that implements contains an element that has the specified key; otherwise, false.
+ The key of the value to get.
+ When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized.
+
+ is null.
+
+
+ Gets a collection that contains the values in the dictionary.
+ A collection that contains the values of the model-state dictionary.
+
+
+ Provides a container for a validation result.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the name of the member.
+ The name of the member.
+
+
+ Gets or sets the validation result message.
+ The validation result message.
+
+
+ Provides a base class for implementing validation logic.
+
+
+ Called from constructors in derived classes to initialize the class.
+ The metadata.
+ The controller context.
+
+
+ Gets the controller context.
+ The controller context.
+
+
+ When implemented in a derived class, returns metadata for client validation.
+ The metadata for client validation.
+
+
+ Returns a composite model validator for the model.
+ A composite model validator for the model.
+ The metadata.
+ The controller context.
+
+
+ Gets or sets a value that indicates whether a model property is required.
+ true if the model property is required; otherwise, false.
+
+
+ Gets the metadata for the model validator.
+ The metadata for the model validator.
+
+
+ When implemented in a derived class, validates the object.
+ A list of validation results.
+ The container.
+
+
+ Provides a list of validators for a model.
+
+
+ When implemented in a derived class, initializes a new instance of the class.
+
+
+ Gets a list of validators.
+ A list of validators.
+ The metadata.
+ The context.
+
+
+ Provides a container for a list of validation providers.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using a list of model-validation providers.
+ A list of model-validation providers.
+
+
+ Returns the list of model validators.
+ The list of model validators.
+ The model metadata.
+ The controller context.
+
+
+ Inserts a model-validator provider into the collection.
+ The zero-based index at which item should be inserted.
+ The model-validator provider object to insert.
+
+
+ Replaces the model-validator provider element at the specified index.
+ The zero-based index of the model-validator provider element to replace.
+ The new value for the model-validator provider element.
+
+
+ Provides a container for the current validation provider.
+
+
+ Gets the model validator provider collection.
+ The model validator provider collection.
+
+
+ Represents a list of items that users can select more than one item from.
+
+
+ Initializes a new instance of the class by using the specified items to include in the list.
+ The items.
+ The parameter is null.
+
+
+ Initializes a new instance of the class by using the specified items to include in the list and the selected values.
+ The items.
+ The selected values.
+ The parameter is null.
+
+
+ Initializes a new instance of the class by using the items to include in the list, the data value field, and the data text field.
+ The items.
+ The data value field.
+ The data text field.
+ The parameter is null.
+
+
+ Initializes a new instance of the class by using the items to include in the list, the data value field, the data text field, and the selected values.
+ The items.
+ The data value field.
+ The data text field.
+ The selected values.
+ The parameter is null.
+
+
+ Gets or sets the data text field.
+ The data text field.
+
+
+ Gets or sets the data value field.
+ The data value field.
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Gets or sets the items in the list.
+ The items in the list.
+
+
+ Gets or sets the selected values.
+ The selected values.
+
+
+ Returns an enumerator can be used to iterate through a collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ When implemented in a derived class, provides a metadata class that contains a reference to the implementation of one or more of the filter interfaces, the filter's order, and the filter's scope.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class and specifies the order of filters and whether multiple filters are allowed.
+ true to specify that multiple filters of the same type are allowed; otherwise, false.
+ The filter order.
+
+
+ Gets a value that indicates whether more than one instance of the filter attribute can be specified.
+ true if more than one instance of the filter attribute is allowed; otherwise, false.
+
+
+ Gets a value that indicates the order in which a filter is applied.
+ A value that indicates the order in which a filter is applied.
+
+
+ Selects the controller that will handle an HTTP request.
+
+
+ Initializes a new instance of the class.
+ The request context.
+ The parameter is null.
+
+
+ Adds the version header by using the specified HTTP context.
+ The HTTP context.
+
+
+ Called by ASP.NET to begin asynchronous request processing.
+ The status of the asynchronous call.
+ The HTTP context.
+ The asynchronous callback method.
+ The state of the asynchronous object.
+
+
+ Called by ASP.NET to begin asynchronous request processing using the base HTTP context.
+ The status of the asynchronous call.
+ The HTTP context.
+ The asynchronous callback method.
+ The state of the asynchronous object.
+
+
+ Gets or sets a value that indicates whether the MVC response header is disabled.
+ true if the MVC response header is disabled; otherwise, false.
+
+
+ Called by ASP.NET when asynchronous request processing has ended.
+ The asynchronous result.
+
+
+ Gets a value that indicates whether another request can use the instance.
+ true if the instance is reusable; otherwise, false.
+
+
+ Contains the header name of the ASP.NET MVC version.
+
+
+ Processes the request by using the specified HTTP request context.
+ The HTTP context.
+
+
+ Processes the request by using the specified base HTTP request context.
+ The HTTP context.
+
+
+ Gets the request context.
+ The request context.
+
+
+ Called by ASP.NET to begin asynchronous request processing using the base HTTP context.
+ The status of the asynchronous call.
+ The HTTP context.
+ The asynchronous callback method.
+ The data.
+
+
+ Called by ASP.NET when asynchronous request processing has ended.
+ The asynchronous result.
+
+
+ Gets a value that indicates whether another request can use the instance.
+ true if the instance is reusable; otherwise, false.
+
+
+ Enables processing of HTTP Web requests by a custom HTTP handler that implements the interface.
+ An object that provides references to the intrinsic server objects (for example, Request, Response, Session, and Server) that are used to service HTTP requests.
+
+
+ Represents an HTML-encoded string that should not be encoded again.
+
+
+ Initializes a new instance of the class.
+ The string to create. If no value is assigned, the object is created using an empty-string value.
+
+
+ Creates an HTML-encoded string using the specified text value.
+ An HTML-encoded string.
+ The value of the string to create .
+
+
+ Contains an empty HTML string.
+
+
+ Determines whether the specified string contains content or is either null or empty.
+ true if the string is null or empty; otherwise, false.
+ The string.
+
+
+ Verifies and processes an HTTP request.
+
+
+ Initializes a new instance of the class.
+
+
+ Called by ASP.NET to begin asynchronous request processing.
+ The status of the asynchronous call.
+ The HTTP context.
+ The asynchronous callback method.
+ The state.
+
+
+ Called by ASP.NET to begin asynchronous request processing.
+ The status of the asynchronous call.
+ The base HTTP context.
+ The asynchronous callback method.
+ The state.
+
+
+ Called by ASP.NET when asynchronous request processing has ended.
+ The asynchronous result.
+
+
+ Called by ASP.NET to begin asynchronous request processing.
+ The status of the asynchronous call.
+ The context.
+ The asynchronous callback method.
+ An object that contains data.
+
+
+ Called by ASP.NET when asynchronous request processing has ended.
+ The status of the asynchronous operations.
+
+
+ Verifies and processes an HTTP request.
+ The HTTP handler.
+ The HTTP context.
+
+
+ Creates an object that implements the IHttpHandler interface and passes the request context to it.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the specified factory controller object.
+ The controller factory.
+
+
+ Returns the HTTP handler by using the specified HTTP context.
+ The HTTP handler.
+ The request context.
+
+
+ Returns the session behavior.
+ The session behavior.
+ The request context.
+
+
+ Returns the HTTP handler by using the specified request context.
+ The HTTP handler.
+ The request context.
+
+
+ Creates instances of files.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a Razor host.
+ A Razor host.
+ The virtual path to the target file.
+ The physical path to the target file.
+
+
+ Extends a NameValueCollection object so that the collection can be copied to a specified dictionary.
+
+
+ Copies the specified collection to the specified destination.
+ The collection.
+ The destination.
+
+
+ Copies the specified collection to the specified destination, and optionally replaces previous entries.
+ The collection.
+ The destination.
+ true to replace previous entries; otherwise, false.
+
+
+ Represents the base class for value providers whose values come from a object.
+
+
+ Initializes a new instance of the class using the specified unvalidated collection.
+ A collection that contains the values that are used to initialize the provider.
+ A collection that contains the values that are used to initialize the provider. This collection will not be validated.
+ An object that contains information about the target culture.
+
+
+ Initializes a new instance of the class.
+ A collection that contains the values that are used to initialize the provider.
+ An object that contains information about the target culture.
+ The parameter is null.
+
+
+ Determines whether the collection contains the specified prefix.
+ true if the collection contains the specified prefix; otherwise, false.
+ The prefix to search for.
+ The parameter is null.
+
+
+
+ Returns a value object using the specified key.
+ The value object for the specified key.
+ The key of the value object to retrieve.
+ The parameter is null.
+
+
+ Returns a value object using the specified key and validation directive.
+ The value object for the specified key.
+ The key.
+ true if validation should be skipped; otherwise, false.
+
+
+ Provides a convenience wrapper for the attribute.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents an attribute that is used to indicate that a controller method is not an action method.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether the attribute marks a method that is not an action method by using the specified controller context.
+ true if the attribute marks a valid non-action method; otherwise, false.
+ The controller context.
+ The method information.
+
+
+ Represents an attribute that is used to mark an action method whose output will be cached.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the cache profile name.
+ The cache profile name.
+
+
+ Gets or sets the child action cache.
+ The child action cache.
+
+
+ Gets or sets the cache duration, in seconds.
+ The cache duration.
+
+
+ Returns a value that indicates whether a child action cache is active.
+ true if the child action cache is active; otherwise, false.
+ The controller context.
+
+
+ Gets or sets the location.
+ The location.
+
+
+ Gets or sets a value that indicates whether to store the cache.
+ true if the cache should be stored; otherwise, false.
+
+
+ This method is an implementation of and supports the ASP.NET MVC infrastructure. It is not intended to be used directly from your code.
+ The filter context.
+
+
+ This method is an implementation of and supports the ASP.NET MVC infrastructure. It is not intended to be used directly from your code.
+ The filter context.
+
+
+ This method is an implementation of and supports the ASP.NET MVC infrastructure. It is not intended to be used directly from your code.
+ The filter context.
+
+
+ This method is an implementation of and supports the ASP.NET MVC infrastructure. It is not intended to be used directly from your code.
+ The filter context.
+
+
+ Called before the action result executes.
+ The filter context, which encapsulates information for using .
+ The parameter is null.
+
+
+ Gets or sets the SQL dependency.
+ The SQL dependency.
+
+
+ Gets or sets the vary-by-content encoding.
+ The vary-by-content encoding.
+
+
+ Gets or sets the vary-by-custom value.
+ The vary-by-custom value.
+
+
+ Gets or sets the vary-by-header value.
+ The vary-by-header value.
+
+
+ Gets or sets the vary-by-param value.
+ The vary-by-param value.
+
+
+ Encapsulates information for binding action-method parameters to a data model.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the model binder.
+ The model binder.
+
+
+ Gets a comma-delimited list of property names for which binding is disabled.
+ The exclude list.
+
+
+ Gets a comma-delimited list of property names for which binding is enabled.
+ The include list.
+
+
+ Gets the prefix to use when the MVC framework binds a value to an action parameter or to a model property.
+ The prefix.
+
+
+ Contains information that describes a parameter.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the action descriptor.
+ The action descriptor.
+
+
+ Gets the binding information.
+ The binding information.
+
+
+ Gets the default value of the parameter.
+ The default value of the parameter.
+
+
+ Returns an array of custom attributes that are defined for this member, excluding named attributes.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+ The custom attribute type cannot be loaded.
+ There is more than one attribute of type defined for this member.
+
+
+ Returns an array of custom attributes that are defined for this member, identified by type.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ The type of the custom attributes.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+ The custom attribute type cannot be loaded.
+ There is more than one attribute of type defined for this member.
+ The parameter is null.
+
+
+ Indicates whether one or more instances of a custom attribute type are defined for this member.
+ true if the custom attribute type is defined for this member; otherwise, false.
+ The type of the custom attributes.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+ The parameter is null.
+
+
+ Gets the name of the parameter.
+ The name of the parameter.
+
+
+ Gets the type of the parameter.
+ The type of the parameter.
+
+
+ Represents a base class that is used to send a partial view to the response.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns the object that is used to render the view.
+ The view engine result.
+ The controller context.
+ An error occurred while the method was attempting to find the view.
+
+
+ Provides a registration point for ASP.NET Razor pre-application start code.
+
+
+ Registers Razor pre-application start code.
+
+
+ Represents a value provider for query strings that are contained in a object.
+
+
+ Initializes a new instance of the class.
+ An object that encapsulates information about the current HTTP request.
+
+
+ Represents a class that is responsible for creating a new instance of a query-string value-provider object.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns a value-provider object for the specified controller context.
+ A query-string value-provider object.
+ An object that encapsulates information about the current HTTP request.
+ The parameter is null.
+
+
+ Provides an adapter for the attribute.
+
+
+ Initializes a new instance of the class.
+ The model metadata.
+ The controller context.
+ The range attribute.
+
+
+ Gets a list of client validation rules for a range check.
+ A list of client validation rules for a range check.
+
+
+ Represents the class used to create views that have Razor syntax.
+
+
+ Initializes a new instance of the class.
+ The controller context.
+ The view path.
+ The layout or master page.
+ A value that indicates whether view start files should be executed before the view.
+ The set of extensions that will be used when looking up view start files.
+
+
+ Initializes a new instance of the class using the view page activator.
+ The controller context.
+ The view path.
+ The layout or master page.
+ A value that indicates whether view start files should be executed before the view.
+ The set of extensions that will be used when looking up view start files.
+ The view page activator.
+
+
+ Gets the layout or master page.
+ The layout or master page.
+
+
+ Renders the specified view context by using the specified writer and instance.
+ The view context.
+ The writer that is used to render the view to the response.
+ The instance.
+
+
+ Gets a value that indicates whether view start files should be executed before the view.
+ A value that indicates whether view start files should be executed before the view.
+
+
+ Gets or sets the set of file extensions that will be used when looking up view start files.
+ The set of file extensions that will be used when looking up view start files.
+
+
+ Represents a view engine that is used to render a Web page that uses the ASP.NET Razor syntax.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the view page activator.
+ The view page activator.
+
+
+ Creates a partial view using the specified controller context and partial path.
+ The partial view.
+ The controller context.
+ The path to the partial view.
+
+
+ Creates a view by using the specified controller context and the paths of the view and master view.
+ The view.
+ The controller context.
+ The path to the view.
+ The path to the master view.
+
+
+ Controls the processing of application actions by redirecting to a specified URI.
+
+
+ Initializes a new instance of the class.
+ The target URL.
+ The parameter is null.
+
+
+ Initializes a new instance of the class using the specified URL and permanent-redirection flag.
+ The URL.
+ A value that indicates whether the redirection should be permanent.
+
+
+ Enables processing of the result of an action method by a custom type that inherits from the class.
+ The context within which the result is executed.
+ The parameter is null.
+
+
+ Gets a value that indicates whether the redirection should be permanent.
+ true if the redirection should be permanent; otherwise, false.
+
+
+ Gets or sets the target URL.
+ The target URL.
+
+
+ Represents a result that performs a redirection by using the specified route values dictionary.
+
+
+ Initializes a new instance of the class by using the specified route name and route values.
+ The name of the route.
+ The route values.
+
+
+ Initializes a new instance of the class by using the specified route name, route values, and permanent-redirection flag.
+ The name of the route.
+ The route values.
+ A value that indicates whether the redirection should be permanent.
+
+
+ Initializes a new instance of the class by using the specified route values.
+ The route values.
+
+
+ Enables processing of the result of an action method by a custom type that inherits from the class.
+ The context within which the result is executed.
+ The parameter is null.
+
+
+ Gets a value that indicates whether the redirection should be permanent.
+ true if the redirection should be permanent; otherwise, false.
+
+
+ Gets or sets the name of the route.
+ The name of the route.
+
+
+ Gets or sets the route values.
+ The route values.
+
+
+ Contains information that describes a reflected action method.
+
+
+ Initializes a new instance of the class.
+ The action-method information.
+ The name of the action.
+ The controller descriptor.
+ Either the or parameter is null.
+ The parameter is null or empty.
+
+
+ Gets the name of the action.
+ The name of the action.
+
+
+ Gets the controller descriptor.
+ The controller descriptor.
+
+
+ Executes the specified controller context by using the specified action-method parameters.
+ The action return value.
+ The controller context.
+ The parameters.
+ The or parameter is null.
+
+
+ Returns an array of custom attributes defined for this member, excluding named attributes.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+ The custom attribute type cannot be loaded.
+ There is more than one attribute of type defined for this member.
+
+
+ Returns an array of custom attributes defined for this member, identified by type.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ The type of the custom attributes.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+ The custom attribute type cannot be loaded.
+ There is more than one attribute of type defined for this member.
+
+
+
+ Retrieves the parameters of the action method.
+ The parameters of the action method.
+
+
+ Retrieves the action selectors.
+ The action selectors.
+
+
+ Indicates whether one or more instances of a custom attribute type are defined for this member.
+ true if the custom attribute type is defined for this member; otherwise, false.
+ The type of the custom attributes.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+
+
+ Gets or sets the action-method information.
+ The action-method information.
+
+
+ Gets the unique ID for the reflected action descriptor using lazy initialization.
+ The unique ID.
+
+
+ Contains information that describes a reflected controller.
+
+
+ Initializes a new instance of the class.
+ The type of the controller.
+ The parameter is null.
+
+
+ Gets the type of the controller.
+ The type of the controller.
+
+
+ Finds the specified action for the specified controller context.
+ The information about the action.
+ The controller context.
+ The name of the action.
+ The parameter is null.
+ The parameter is null or empty.
+
+
+ Returns the list of actions for the controller.
+ A list of action descriptors for the controller.
+
+
+ Returns an array of custom attributes that are defined for this member, excluding named attributes.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+ The custom attribute type cannot be loaded.
+ There is more than one attribute of type defined for this member.
+
+
+ Returns an array of custom attributes that are defined for this member, identified by type.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ The type of the custom attributes.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+ The custom attribute type cannot be loaded.
+ There is more than one attribute of type defined for this member.
+
+
+
+ Returns a value that indicates whether one or more instances of a custom attribute type are defined for this member.
+ true if the custom attribute type is defined for this member; otherwise, false.
+ The type of the custom attributes.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+
+
+ Contains information that describes a reflected action-method parameter.
+
+
+ Initializes a new instance of the class.
+ The parameter information.
+ The action descriptor.
+ The or parameter is null.
+
+
+ Gets the action descriptor.
+ The action descriptor.
+
+
+ Gets the binding information.
+ The binding information.
+
+
+ Gets the default value of the reflected parameter.
+ The default value of the reflected parameter.
+
+
+ Returns an array of custom attributes that are defined for this member, excluding named attributes.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+ The custom attribute type cannot be loaded.
+ There is more than one attribute of type defined for this member.
+
+
+ Returns an array of custom attributes that are defined for this member, identified by type.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ The type of the custom attributes.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+ The custom attribute type cannot be loaded.
+ There is more than one attribute of type defined for this member.
+
+
+ Returns a value that indicates whether one or more instances of a custom attribute type are defined for this member.
+ true if the custom attribute type is defined for this member; otherwise, false.
+ The type of the custom attributes.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+
+
+ Gets or sets the parameter information.
+ The parameter information.
+
+
+ Gets the name of the parameter.
+ The name of the parameter.
+
+
+ Gets the type of the parameter.
+ The type of the parameter.
+
+
+ Provides an adapter for the attribute.
+
+
+ Initializes a new instance of the class.
+ The model metadata.
+ The controller context.
+ The regular expression attribute.
+
+
+ Gets a list of regular-expression client validation rules.
+ A list of regular-expression client validation rules.
+
+
+ Provides an attribute that uses the jQuery validation plug-in remote validator.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the specified route name.
+ The route name.
+
+
+ Initializes a new instance of the class using the specified action-method name and controller name.
+ The name of the action method.
+ The name of the controller.
+
+
+ Initializes a new instance of the class using the specified action-method name, controller name, and area name.
+ The name of the action method.
+ The name of the controller.
+ The name of the area.
+
+
+ Gets or sets the additional fields that are required for validation.
+ The additional fields that are required for validation.
+
+
+ Returns a comma-delimited string of validation field names.
+ A comma-delimited string of validation field names.
+ The name of the validation property.
+
+
+ Formats the error message that is displayed when validation fails.
+ A formatted error message.
+ A name to display with the error message.
+
+
+ Formats the property for client validation by prepending an asterisk (*) and a dot.
+ The string "*." Is prepended to the property.
+ The property.
+
+
+ Gets a list of client validation rules for the property.
+ A list of remote client validation rules for the property.
+ The model metadata.
+ The controller context.
+
+
+ Gets the URL for the remote validation call.
+ The URL for the remote validation call.
+ The controller context.
+
+
+ Gets or sets the HTTP method used for remote validation.
+ The HTTP method used for remote validation. The default value is "Get".
+
+
+ This method always returns true.
+ true
+ The validation target.
+
+
+ Gets the route data dictionary.
+ The route data dictionary.
+
+
+ Gets or sets the route name.
+ The route name.
+
+
+ Gets the route collection from the route table.
+ The route collection from the route table.
+
+
+ Provides an adapter for the attribute.
+
+
+ Initializes a new instance of the class.
+ The model metadata.
+ The controller context.
+ The required attribute.
+
+
+ Gets a list of required-value client validation rules.
+ A list of required-value client validation rules.
+
+
+ Represents an attribute that forces an unsecured HTTP request to be re-sent over HTTPS.
+
+
+ Initializes a new instance of the class.
+
+
+ Handles unsecured HTTP requests that are sent to the action method.
+ An object that encapsulates information that is required in order to use the attribute.
+ The HTTP request contains an invalid transfer method override. All GET requests are considered invalid.
+
+
+ Determines whether a request is secured (HTTPS) and, if it is not, calls the method.
+ An object that encapsulates information that is required in order to use the attribute.
+ The parameter is null.
+
+
+ Provides the context for the method of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The controller context.
+ The result object.
+ true to cancel execution; otherwise, false.
+ The exception object.
+ The parameter is null.
+
+
+ Gets or sets a value that indicates whether this instance is canceled.
+ true if the instance is canceled; otherwise, false.
+
+
+ Gets or sets the exception object.
+ The exception object.
+
+
+ Gets or sets a value that indicates whether the exception has been handled.
+ true if the exception has been handled; otherwise, false.
+
+
+ Gets or sets the action result.
+ The action result.
+
+
+ Provides the context for the method of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using the specified controller context and action result.
+ The controller context.
+ The action result.
+ The parameter is null.
+
+
+ Gets or sets a value that indicates whether this value is "cancel".
+ true if the value is "cancel"; otherwise, false.
+
+
+ Gets or sets the action result.
+ The action result.
+
+
+ Extends a object for MVC routing.
+
+
+ Returns an object that contains information about the route and virtual path that are the result of generating a URL in the current area.
+ An object that contains information about the route and virtual path that are the result of generating a URL in the current area.
+ An object that contains the routes for the applications.
+ An object that encapsulates information about the requested route.
+ The name of the route to use when information about the URL path is retrieved.
+ An object that contains the parameters for a route.
+
+
+ Returns an object that contains information about the route and virtual path that are the result of generating a URL in the current area.
+ An object that contains information about the route and virtual path that are the result of generating a URL in the current area.
+ An object that contains the routes for the applications.
+ An object that encapsulates information about the requested route.
+ An object that contains the parameters for a route.
+
+
+ Ignores the specified URL route for the given list of available routes.
+ A collection of routes for the application.
+ The URL pattern for the route to ignore.
+ The or parameter is null.
+
+
+ Ignores the specified URL route for the given list of the available routes and a list of constraints.
+ A collection of routes for the application.
+ The URL pattern for the route to ignore.
+ A set of expressions that specify values for the parameter.
+ The or parameter is null.
+
+
+ Maps the specified URL route.
+ A reference to the mapped route.
+ A collection of routes for the application.
+ The name of the route to map.
+ The URL pattern for the route.
+ The or parameter is null.
+
+
+ Maps the specified URL route and sets default route values.
+ A reference to the mapped route.
+ A collection of routes for the application.
+ The name of the route to map.
+ The URL pattern for the route.
+ An object that contains default route values.
+ The or parameter is null.
+
+
+ Maps the specified URL route and sets default route values and constraints.
+ A reference to the mapped route.
+ A collection of routes for the application.
+ The name of the route to map.
+ The URL pattern for the route.
+ An object that contains default route values.
+ A set of expressions that specify values for the parameter.
+ The or parameter is null.
+
+
+ Maps the specified URL route and sets default route values, constraints, and namespaces.
+ A reference to the mapped route.
+ A collection of routes for the application.
+ The name of the route to map.
+ The URL pattern for the route.
+ An object that contains default route values.
+ A set of expressions that specify values for the parameter.
+ A set of namespaces for the application.
+ The or parameter is null.
+
+
+ Maps the specified URL route and sets default route values and namespaces.
+ A reference to the mapped route.
+ A collection of routes for the application.
+ The name of the route to map.
+ The URL pattern for the route.
+ An object that contains default route values.
+ A set of namespaces for the application.
+ The or parameter is null.
+
+
+ Maps the specified URL route and sets the namespaces.
+ A reference to the mapped route.
+ A collection of routes for the application.
+ The name of the route to map.
+ The URL pattern for the route.
+ A set of namespaces for the application.
+ The or parameter is null.
+
+
+ Represents a value provider for route data that is contained in an object that implements the interface.
+
+
+ Initializes a new instance of the class.
+ An object that contain information about the HTTP request.
+
+
+ Represents a factory for creating route-data value provider objects.
+
+
+ Initialized a new instance of the class.
+
+
+ Returns a value-provider object for the specified controller context.
+ A value-provider object.
+ An object that encapsulates information about the current HTTP request.
+ The parameter is null.
+
+
+ Represents a list that lets users select one item.
+
+
+ Initializes a new instance of the class by using the specified items for the list.
+ The items.
+
+
+ Initializes a new instance of the class by using the specified items for the list and a selected value.
+ The items.
+ The selected value.
+
+
+ Initializes a new instance of the class by using the specified items for the list, the data value field, and the data text field.
+ The items.
+ The data value field.
+ The data text field.
+
+
+ Initializes a new instance of the class by using the specified items for the list, the data value field, the data text field, and a selected value.
+ The items.
+ The data value field.
+ The data text field.
+ The selected value.
+
+
+ Gets the list value that was selected by the user.
+ The selected value.
+
+
+ Represents the selected item in an instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a value that indicates whether this is selected.
+ true if the item is selected; otherwise, false.
+
+
+ Gets or sets the text of the selected item.
+ The text.
+
+
+ Gets or sets the value of the selected item.
+ The value.
+
+
+ Specifies the session state of the controller.
+
+
+ Initializes a new instance of the class
+ The type of the session state.
+
+
+ Get the session state behavior for the controller.
+ The session state behavior for the controller.
+
+
+ Provides session-state data to the current object.
+
+
+ Initializes a new instance of the class.
+
+
+ Loads the temporary data by using the specified controller context.
+ The temporary data.
+ The controller context.
+ An error occurred when the session context was being retrieved.
+
+
+ Saves the specified values in the temporary data dictionary by using the specified controller context.
+ The controller context.
+ The values.
+ An error occurred the session context was being retrieved.
+
+
+ Provides an adapter for the attribute.
+
+
+ Initializes a new instance of the class.
+ The model metadata.
+ The controller context.
+ The string-length attribute.
+
+
+ Gets a list of string-length client validation rules.
+ A list of string-length client validation rules.
+
+
+ Represents a set of data that persists only from one request to the next.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds an element that has the specified key and value to the object.
+ The key of the element to add.
+ The value of the element to add.
+ The object is read-only.
+
+ is null.
+ An element that has the same key already exists in the object.
+
+
+ Removes all items from the instance.
+ The object is read-only.
+
+
+ Determines whether the instance contains an element that has the specified key.
+ true if the instance contains an element that has the specified key; otherwise, false.
+ The key to locate in the instance.
+
+ is null.
+
+
+ Determines whether the dictionary contains the specified value.
+ true if the dictionary contains the specified value; otherwise, false.
+ The value.
+
+
+ Gets the number of elements in the object.
+ The number of elements in the object.
+
+
+ Gets the enumerator.
+ The enumerator.
+
+
+ Gets or sets the object that has the specified key.
+ The object that has the specified key.
+ The key to access.
+
+
+ Marks all keys in the dictionary for retention.
+
+
+ Marks the specified key in the dictionary for retention.
+ The key to retain in the dictionary.
+
+
+ Gets an object that contains the keys of elements in the object.
+ The keys of the elements in the object.
+
+
+ Loads the specified controller context by using the specified data provider.
+ The controller context.
+ The temporary data provider.
+
+
+ Returns an object that contains the element that is associated with the specified key, without marking the key for deletion.
+ An object that contains the element that is associated with the specified key.
+ The key of the element to return.
+
+
+ Removes the element that has the specified key from the object.
+ true if the element was removed successfully; otherwise, false. This method also returns false if was not found in the . instance.
+ The key of the element to remove.
+ The object is read-only.
+
+ is null.
+
+
+ Saves the specified controller context by using the specified data provider.
+ The controller context.
+ The temporary data provider.
+
+
+ Adds the specified key/value pair to the dictionary.
+ The key/value pair.
+
+
+ Determines whether a sequence contains a specified element by using the default equality comparer.
+ true if the dictionary contains the specified key/value pair; otherwise, false.
+ The key/value pair to search for.
+
+
+ Copies a key/value pair to the specified array at the specified index.
+ The target array.
+ The index.
+
+
+ Gets a value that indicates whether the dictionary is read-only.
+ true if the dictionary is read-only; otherwise, false.
+
+
+ Deletes the specified key/value pair from the dictionary.
+ true if the key/value pair was removed successfully; otherwise, false.
+ The key/value pair.
+
+
+ Returns an enumerator that can be used to iterate through a collection.
+ An object that can be used to iterate through the collection.
+
+
+ Gets the value of the element that has the specified key.
+ true if the object that implements contains an element that has the specified key; otherwise, false.
+ The key of the value to get.
+ When this method returns, the value that is associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized.
+
+ is null.
+
+
+ Gets the object that contains the values in the object.
+ The values of the elements in the object that implements .
+
+
+ Encapsulates information about the current template context.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the formatted model value.
+ The formatted model value.
+
+
+ Retrieves the full DOM ID of a field using the specified HTML name attribute.
+ The full DOM ID.
+ The value of the HTML name attribute.
+
+
+ Retrieves the fully qualified name (including a prefix) for a field using the specified HTML name attribute.
+ The prefixed name of the field.
+ The value of the HTML name attribute.
+
+
+ Gets or sets the HTML field prefix.
+ The HTML field prefix.
+
+
+ Contains the number of objects that were visited by the user.
+ The number of objects.
+
+
+ Determines whether the template has been visited by the user.
+ true if the template has been visited by the user; otherwise, false.
+ An object that encapsulates information that describes the model.
+
+
+ Contains methods to build URLs for ASP.NET MVC within an application.
+
+
+ Initializes a new instance of the class using the specified request context.
+ An object that contains information about the current request and about the route that it matched.
+ The parameter is null.
+
+
+ Initializes a new instance of the class by using the specified request context and route collection.
+ An object that contains information about the current request and about the route that it matched.
+ A collection of routes.
+ The or the parameter is null.
+
+
+ Generates a fully qualified URL to an action method by using the specified action name.
+ The fully qualified URL to an action method.
+ The name of the action method.
+
+
+ Generates a fully qualified URL to an action method by using the specified action name and route values.
+ The fully qualified URL to an action method.
+ The name of the action method.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+
+
+ Generates a fully qualified URL to an action method by using the specified action name and controller name.
+ The fully qualified URL to an action method.
+ The name of the action method.
+ The name of the controller.
+
+
+ Generates a fully qualified URL to an action method by using the specified action name, controller name, and route values.
+ The fully qualified URL to an action method.
+ The name of the action method.
+ The name of the controller.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+
+
+ Generates a fully qualified URL to an action method by using the specified action name, controller name, route values, and protocol to use.
+ The fully qualified URL to an action method.
+ The name of the action method.
+ The name of the controller.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+ The protocol for the URL, such as "http" or "https".
+
+
+ Generates a fully qualified URL to an action method by using the specified action name, controller name, and route values.
+ The fully qualified URL to an action method.
+ The name of the action method.
+ The name of the controller.
+ An object that contains the parameters for a route.
+
+
+ Generates a fully qualified URL for an action method by using the specified action name, controller name, route values, protocol to use, and host name.
+ The fully qualified URL to an action method.
+ The name of the action method.
+ The name of the controller.
+ An object that contains the parameters for a route.
+ The protocol for the URL, such as "http" or "https".
+ The host name for the URL.
+
+
+ Generates a fully qualified URL to an action method for the specified action name and route values.
+ The fully qualified URL to an action method.
+ The name of the action method.
+ An object that contains the parameters for a route.
+
+
+ Converts a virtual (relative) path to an application absolute path.
+ The application absolute path.
+ The virtual path of the content.
+
+
+ Encodes special characters in a URL string into character-entity equivalents.
+ An encoded URL string.
+ The text to encode.
+
+
+ Returns a string that contains a content URL.
+ A string that contains a content URL.
+ The content path.
+ The HTTP context.
+
+
+ Returns a string that contains a URL.
+ A string that contains a URL.
+ The route name.
+ The action name.
+ The controller name.
+ The HTTP protocol.
+ The host name.
+ The fragment.
+ The route values.
+ The route collection.
+ The request context.
+ true to include implicit MVC values; otherwise false.
+
+
+ Returns a string that contains a URL.
+ A string that contains a URL.
+ The route name.
+ The action name.
+ The controller name.
+ The route values.
+ The route collection.
+ The request context.
+ true to include implicit MVC values; otherwise. false.
+
+
+ Returns a value that indicates whether the URL is local.
+ true if the URL is local; otherwise, false.
+ The URL.
+
+
+ Gets information about an HTTP request that matches a defined route.
+ The request context.
+
+
+ Gets a collection that contains the routes that are registered for the application.
+ The route collection.
+
+
+ Generates a fully qualified URL for the specified route values.
+ The fully qualified URL.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+
+
+ Generates a fully qualified URL for the specified route name.
+ The fully qualified URL.
+ The name of the route that is used to generate the URL.
+
+
+ Generates a fully qualified URL for the specified route values by using a route name.
+ The fully qualified URL.
+ The name of the route that is used to generate the URL.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+
+
+ Generates a fully qualified URL for the specified route values by using a route name and the protocol to use.
+ The fully qualified URL.
+ The name of the route that is used to generate the URL.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+ The protocol for the URL, such as "http" or "https".
+
+
+ Generates a fully qualified URL for the specified route values by using a route name.
+ The fully qualified URL.
+ The name of the route that is used to generate the URL.
+ An object that contains the parameters for a route.
+
+
+ Generates a fully qualified URL for the specified route values by using the specified route name, protocol to use, and host name.
+ The fully qualified URL.
+ The name of the route that is used to generate the URL.
+ An object that contains the parameters for a route.
+ The protocol for the URL, such as "http" or "https".
+ The host name for the URL.
+
+
+ Generates a fully qualified URL for the specified route values.
+ The fully qualified URL.
+ An object that contains the parameters for a route.
+
+
+ Represents an optional parameter that is used by the class during routing.
+
+
+ Contains the read-only value for the optional parameter.
+
+
+ Returns an empty string. This method supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code.
+ An empty string.
+
+
+ Provides an object adapter that can be validated.
+
+
+ Initializes a new instance of the class.
+ The model metadata.
+ The controller context.
+
+
+ Validates the specified object.
+ A list of validation results.
+ The container.
+
+
+ Represents an attribute that is used to prevent forgery of a request.
+
+
+ Initializes a new instance of the class.
+
+
+ Called when authorization is required.
+ The filter context.
+ The parameter is null.
+
+
+ Gets or sets the salt string.
+ The salt string.
+
+
+ Represents an attribute that is used to mark action methods whose input must be validated.
+
+
+ Initializes a new instance of the class.
+ true to enable validation.
+
+
+ Gets or sets a value that indicates whether to enable validation.
+ true if validation is enabled; otherwise, false.
+
+
+ Called when authorization is required.
+ The filter context.
+ The parameter is null.
+
+
+ Represents the collection of value-provider objects for the application.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class and registers the specified value providers.
+ The list of value providers to register.
+
+
+ Determines whether the collection contains the specified prefix.
+ true if the collection contains the specified prefix; otherwise, false.
+ The prefix to search for.
+
+
+
+ Returns a value object using the specified key.
+ The value object for the specified key.
+ The key of the value object to retrieve.
+
+
+ Returns a value object using the specified key and skip-validation parameter.
+ The value object for the specified key.
+ The key of the value object to retrieve.
+ true to specify that validation should be skipped; otherwise, false.
+
+
+ Inserts the specified value-provider object into the collection at the specified index location.
+ The zero-based index location at which to insert the value provider into the collection.
+ The value-provider object to insert.
+ The parameter is null.
+
+
+ Replaces the value provider at the specified index location with a new value provider.
+ The zero-based index of the element to replace.
+ The new value for the element at the specified index.
+ The parameter is null.
+
+
+ Represents a dictionary of value providers for the application.
+
+
+ Initializes a new instance of the class.
+ The controller context.
+
+
+ Adds the specified item to the collection of value providers.
+ The object to add to the object.
+ The object is read-only.
+
+
+ Adds an element that has the specified key and value to the collection of value providers.
+ The key of the element to add.
+ The value of the element to add.
+ The object is read-only.
+
+ is null.
+ An element that has the specified key already exists in the object.
+
+
+ Adds an element that has the specified key and value to the collection of value providers.
+ The key of the element to add.
+ The value of the element to add.
+ The object is read-only.
+
+ is null.
+ An element that has the specified key already exists in the object.
+
+
+ Removes all items from the collection of value providers.
+ The object is read-only.
+
+
+ Determines whether the collection of value providers contains the specified item.
+ true if is found in the collection of value providers; otherwise, false.
+ The object to locate in the instance.
+
+
+ Determines whether the collection of value providers contains an element that has the specified key.
+ true if the collection of value providers contains an element that has the key; otherwise, false.
+ The key of the element to find in the instance.
+
+ is null.
+
+
+ Gets or sets the controller context.
+ The controller context.
+
+
+ Copies the elements of the collection to an array, starting at the specified index.
+ The one-dimensional array that is the destination of the elements copied from the object. The array must have zero-based indexing.
+ The zero-based index in at which copying starts.
+
+ is null.
+
+ is less than 0.
+
+ is multidimensional.-or- is equal to or greater than the length of .-or-The number of elements in the source collection is greater than the available space from to the end of the destination .-or-Type cannot be cast automatically to the type of the destination array.
+
+
+ Gets the number of elements in the collection.
+ The number of elements in the collection.
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Gets a value that indicates whether the collection is read-only.
+ true if the collection is read-only; otherwise, false.
+
+
+ Gets or sets the object that has the specified key.
+ The object.
+ The key.
+
+
+ Gets a collection that contains the keys of the instance.
+ A collection that contains the keys of the object that implements the interface.
+
+
+ Removes the first occurrence of the specified item from the collection of value providers.
+ true if was successfully removed from the collection; otherwise, false. This method also returns false if is not found in the collection.
+ The object to remove from the instance.
+ The object is read-only.
+
+
+ Removes the element that has the specified key from the collection of value providers.
+ true if the element was successfully removed; otherwise, false. This method also returns false if was not found in the collection.
+ The key of the element to remove.
+ The object is read-only.
+
+ is null.
+
+
+ Returns an enumerator that can be used to iterate through a collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Determines whether the collection contains the specified prefix.
+ true if the collection contains the specified prefix; otherwise, false.
+ The prefix to search for.
+
+
+ Returns a value object using the specified key.
+ The value object for the specified key.
+ The key of the value object to return.
+
+
+ Gets the value of the element that has the specified key.
+ true if the object that implements contains an element that has the specified key; otherwise, false.
+ The key of the element to get.
+ When this method returns, the value that is associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized.
+
+ is null.
+
+
+ Gets a collection that contains the values in the object.
+ A collection of the values in the object that implements the interface.
+
+
+ Represents a container for value-provider factory objects.
+
+
+ Gets the collection of value-provider factories for the application.
+ The collection of value-provider factory objects.
+
+
+ Represents a factory for creating value-provider objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns a value-provider object for the specified controller context.
+ A value-provider object.
+ An object that encapsulates information about the current HTTP request.
+
+
+ Represents the collection of value-provider factories for the application.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the specified list of value-provider factories.
+ A list of value-provider factories to initialize the collection with.
+
+
+ Returns the value-provider factory for the specified controller context.
+ The value-provider factory object for the specified controller context.
+ An object that encapsulates information about the current HTTP request.
+
+
+ Inserts the specified value-provider factory object at the specified index location.
+ The zero-based index location at which to insert the value provider into the collection.
+ The value-provider factory object to insert.
+ The parameter is null.
+
+
+ Sets the specified value-provider factory object at the given index location.
+ The zero-based index location at which to insert the value provider into the collection.
+ The value-provider factory object to set.
+ The parameter is null.
+
+
+ Represents the result of binding a value (such as from a form post or query string) to an action-method argument property, or to the argument itself.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using the specified raw value, attempted value, and culture information.
+ The raw value.
+ The attempted value.
+ The culture.
+
+
+ Gets or sets the raw value that is converted to a string for display.
+ The raw value.
+
+
+ Converts the value that is encapsulated by this result to the specified type.
+ The converted value.
+ The target type.
+ The parameter is null.
+
+
+ Converts the value that is encapsulated by this result to the specified type by using the specified culture information.
+ The converted value.
+ The target type.
+ The culture to use in the conversion.
+ The parameter is null.
+
+
+ Gets or sets the culture.
+ The culture.
+
+
+ Gets or set the raw value that is supplied by the value provider.
+ The raw value.
+
+
+ Encapsulates information that is related to rendering a view.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using the specified controller context, view, view data dictionary, temporary data dictionary, and text writer.
+ Encapsulates information about the HTTP request.
+ The view to render.
+ The dictionary that contains the data that is required in order to render the view.
+ The dictionary that contains temporary data for the view.
+ The text writer object that is used to write HTML output.
+ One of the parameters is null.
+
+
+ Gets or sets a value that indicates whether client-side validation is enabled.
+ true if client-side validation is enabled; otherwise, false.
+
+
+ Gets or sets an object that encapsulates information that is required in order to validate and process the input data from an HTML form.
+ An object that encapsulates information that is required in order to validate and process the input data from an HTML form.
+
+
+ Writes the client validation information to the HTTP response.
+
+
+ Gets data that is associated with this request and that is available for only one request.
+ The temporary data.
+
+
+ Gets or sets a value that indicates whether unobtrusive JavaScript is enabled.
+ true if unobtrusive JavaScript is enabled; otherwise, false.
+
+
+ Gets an object that implements the interface to render in the browser.
+ The view.
+
+
+
+ Gets the view data that is passed to the view.
+ The view data.
+
+
+ Gets or sets the text writer object that is used to write HTML output.
+ The object that is used to write the HTML output.
+
+
+ Represents a container that is used to pass data between a controller and a view.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using the specified model.
+ The model.
+
+
+ Initializes a new instance of the class by using the specified dictionary.
+ The dictionary.
+ The parameter is null.
+
+
+ Adds the specified item to the collection.
+ The object to add to the collection.
+ The collection is read-only.
+
+
+ Adds an element to the collection using the specified key and value .
+ The key of the element to add.
+ The value of the element to add.
+ The object is read-only.
+
+ is null.
+ An element with the same key already exists in the object.
+
+
+ Removes all items from the collection.
+ The object is read-only.
+
+
+ Determines whether the collection contains the specified item.
+ true if is found in the collection; otherwise, false.
+ The object to locate in the collection.
+
+
+ Determines whether the collection contains an element that has the specified key.
+ true if the collection contains an element that has the specified key; otherwise, false.
+ The key of the element to locate in the collection.
+
+ is null.
+
+
+ Copies the elements of the collection to an array, starting at a particular index.
+ The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is null.
+
+ is less than 0.
+
+ is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source collection is greater than the available space from to the end of the destination .-or- Type cannot be cast automatically to the type of the destination .
+
+
+ Gets the number of elements in the collection.
+ The number of elements in the collection.
+
+
+ Evaluates the specified expression.
+ The results of the evaluation.
+ The expression.
+ The parameter is null or empty.
+
+
+ Evaluates the specified expression by using the specified format.
+ The results of the evaluation.
+ The expression.
+ The format.
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Returns information about the view data as defined by the parameter.
+ An object that contains the view data information that is defined by the parameter.
+ A set of key/value pairs that define the view-data information to return.
+ The parameter is either null or empty.
+
+
+ Gets a value that indicates whether the collection is read-only.
+ true if the collection is read-only; otherwise, false.
+
+
+ Gets or sets the item that is associated with the specified key.
+ The value of the selected item.
+ The key.
+
+
+ Gets a collection that contains the keys of this dictionary.
+ A collection that contains the keys of the object that implements .
+
+
+ Gets or sets the model that is associated with the view data.
+ The model that is associated with the view data.
+
+
+ Gets or sets information about the model.
+ Information about the model.
+
+
+ Gets the state of the model.
+ The state of the model.
+
+
+ Removes the first occurrence of a specified object from the collection.
+ true if was successfully removed from the collection; otherwise, false. This method also returns false if is not found in the collection.
+ The object to remove from the collection.
+ The collection is read-only.
+
+
+ Removes the element from the collection using the specified key.
+ true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the original collection.
+ The key of the element to remove.
+ The collection is read-only.
+
+ is null.
+
+
+ Sets the data model to use for the view.
+ The data model to use for the view.
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Gets or sets an object that encapsulates information about the current template context.
+ An object that contains information about the current template.
+
+
+ Attempts to retrieve the value that is associated with the specified key.
+ true if the collection contains an element with the specified key; otherwise, false.
+ The key of the value to get.
+ When this method returns, the value that is associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized.
+
+ is null.
+
+
+ Gets a collection that contains the values in this dictionary.
+ A collection that contains the values of the object that implements .
+
+
+ Represents a container that is used to pass strongly typed data between a controller and a view.
+ The type of the model.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using the specified view data dictionary.
+ An existing view data dictionary to copy into this instance.
+
+
+ Initializes a new instance of the class by using the specified model.
+ The data model to use for the view.
+
+
+ Gets or sets the model.
+ A reference to the data model.
+
+
+ Gets or sets information about the model.
+ Information about the model.
+
+
+ Sets the data model to use for the view.
+ The data model to use for the view.
+ An error occurred while the model was being set.
+
+
+ Encapsulates information about the current template content that is used to develop templates and about HTML helpers that interact with templates.
+
+
+ Initializes a new instance of the class.
+
+
+
+ Gets or sets the object that contains the values to be displayed by the template.
+ The object that contains the values to be displayed by the template.
+
+
+ Gets or sets the description of the property to be displayed by the template.
+ The description of the property to be displayed by the template.
+
+
+ Gets or sets the current value to be displayed by the template.
+ The current value to be displayed by the template.
+
+
+ Represents a collection of view engines that are available to the application.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using the specified list of view engines.
+ The list that is wrapped by the new collection.
+
+ is null.
+
+
+ Finds the specified partial view by using the specified controller context.
+ The partial view.
+ The controller context.
+ The name of the partial view.
+ The parameter is null.
+ The parameter is null or empty.
+
+
+ Finds the specified view by using the specified controller context and master view.
+ The view.
+ The controller context.
+ The name of the view.
+ The name of the master view.
+ The parameter is null.
+ The parameter is null or empty.
+
+
+ Inserts an element into the collection at the specified index.
+ The zero-based index at which should be inserted.
+ The object to insert.
+
+ is less than zero.-or- is greater than the number of items in the collection.
+ The parameter is null.
+
+
+ Replaces the element at the specified index.
+ The zero-based index of the element to replace.
+ The new value for the element at the specified index.
+
+ is less than zero.-or- is greater than the number of items in the collection.
+ The parameter is null.
+
+
+ Represents the result of locating a view engine.
+
+
+ Initializes a new instance of the class by using the specified searched locations.
+ The searched locations.
+ The parameter is null.
+
+
+ Initializes a new instance of the class by using the specified view and view engine.
+ The view.
+ The view engine.
+ The or parameter is null.
+
+
+ Gets or sets the searched locations.
+ The searched locations.
+
+
+ Gets or sets the view.
+ The view.
+
+
+ Gets or sets the view engine.
+ The view engine.
+
+
+ Represents a collection of view engines that are available to the application.
+
+
+ Gets the view engines.
+ The view engines.
+
+
+ Represents the information that is needed to build a master view page.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the AJAX script for the master page.
+ The AJAX script for the master page.
+
+
+ Gets the HTML for the master page.
+ The HTML for the master page.
+
+
+ Gets the model.
+ The model.
+
+
+ Gets the temporary data.
+ The temporary data.
+
+
+ Gets the URL.
+ The URL.
+
+
+ Gets the dynamic view-bag dictionary.
+ The dynamic view-bag dictionary.
+
+
+ Gets the view context.
+ The view context.
+
+
+ Gets the view data.
+ The view data.
+
+
+ Gets the writer that is used to render the master page.
+ The writer that is used to render the master page.
+
+
+ Represents the information that is required in order to build a strongly typed master view page.
+ The type of the model.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the AJAX script for the master page.
+ The AJAX script for the master page.
+
+
+ Gets the HTML for the master page.
+ The HTML for the master page.
+
+
+ Gets the model.
+ A reference to the data model.
+
+
+ Gets the view data.
+ The view data.
+
+
+ Represents the properties and methods that are needed to render a view as a Web Forms page.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the object that is used to render HTML in Ajax scenarios.
+ The Ajax helper object that is associated with the view.
+
+
+ Gets or sets the object that is used to render HTML elements.
+ The HTML helper object that is associated with the view.
+
+
+ Initializes the , , and properties.
+
+
+ Gets or sets the path of the master view.
+ The path of the master view.
+
+
+ Gets the Model property of the associated object.
+ The Model property of the associated object.
+
+
+ Raises the event at the beginning of page initialization.
+ The event data.
+
+
+ Enables processing of the specified HTTP request by the ASP.NET MVC framework.
+ An object that encapsulates HTTP-specific information about the current HTTP request.
+
+
+ Initializes the object that receives the page content to be rendered.
+ The object that receives the page content.
+
+
+ Renders the view page to the response using the specified view context.
+ An object that encapsulates the information that is required in order to render the view, which includes the controller context, form context, the temporary data, and the view data for the associated view.
+
+
+ Sets the text writer that is used to render the view to the response.
+ The writer that is used to render the view to the response.
+
+
+ Sets the view data dictionary for the associated view.
+ A dictionary of data to pass to the view.
+
+
+ Gets the temporary data to pass to the view.
+ The temporary data to pass to the view.
+
+
+ Gets or sets the URL of the rendered page.
+ The URL of the rendered page.
+
+
+ Gets the view bag.
+ The view bag.
+
+
+ Gets or sets the information that is used to render the view.
+ The information that is used to render the view, which includes the form context, the temporary data, and the view data of the associated view.
+
+
+ Gets or sets a dictionary that contains data to pass between the controller and the view.
+ A dictionary that contains data to pass between the controller and the view.
+
+
+ Gets the text writer that is used to render the view to the response.
+ The text writer that is used to render the view to the response.
+
+
+ Represents the information that is required in order to render a strongly typed view as a Web Forms page.
+ The type of the model.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the object that supports rendering HTML in Ajax scenarios.
+ The Ajax helper object that is associated with the view.
+
+
+ Gets or sets the object that provides support for rendering elements.
+ The HTML helper object that is associated with the view.
+
+
+ Instantiates and initializes the and properties.
+
+
+ Gets the property of the associated object.
+ A reference to the data model.
+
+
+ Sets the view data dictionary for the associated view.
+ A dictionary of data to pass to the view.
+
+
+ Gets or sets a dictionary that contains data to pass between the controller and the view.
+ A dictionary that contains data to pass between the controller and the view.
+
+
+ Represents a class that is used to render a view by using an instance that is returned by an object.
+
+
+ Initializes a new instance of the class.
+
+
+ Searches the registered view engines and returns the object that is used to render the view.
+ The object that is used to render the view.
+ The controller context.
+ An error occurred while the method was searching for the view.
+
+
+ Gets the name of the master view (such as a master page or template) to use when the view is rendered.
+ The name of the master view.
+
+
+ Represents a base class that is used to provide the model to the view and then render the view to the response.
+
+
+ Initializes a new instance of the class.
+
+
+ When called by the action invoker, renders the view to the response.
+ The context that the result is executed in.
+ The parameter is null.
+
+
+ Returns the object that is used to render the view.
+ The view engine.
+ The context.
+
+
+ Gets the view data model.
+ The view data model.
+
+
+ Gets or sets the object for this result.
+ The temporary data.
+
+
+ Gets or sets the object that is rendered to the response.
+ The view.
+
+
+ Gets the view bag.
+ The view bag.
+
+
+ Gets or sets the view data object for this result.
+ The view data.
+
+
+ Gets or sets the collection of view engines that are associated with this result.
+ The collection of view engines.
+
+
+ Gets or sets the name of the view to render.
+ The name of the view.
+
+
+ Provides an abstract class that can be used to implement a view start (master) page.
+
+
+ When implemented in a derived class, initializes a new instance of the class.
+
+
+ When implemented in a derived class, gets the HTML markup for the view start page.
+ The HTML markup for the view start page.
+
+
+ When implemented in a derived class, gets the URL for the view start page.
+ The URL for the view start page.
+
+
+ When implemented in a derived class, gets the view context for the view start page.
+ The view context for the view start page.
+
+
+ Provides a container for objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Provides a container for objects.
+ The type of the model.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the formatted value.
+ The formatted value.
+
+
+ Represents the type of a view.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the name of the type.
+ The name of the type.
+
+
+ Represents the information that is needed to build a user control.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the AJAX script for the view.
+ The AJAX script for the view.
+
+
+ Ensures that view data is added to the object of the user control if the view data exists.
+
+
+ Gets the HTML for the view.
+ The HTML for the view.
+
+
+ Gets the model.
+ The model.
+
+
+ Renders the view by using the specified view context.
+ The view context.
+
+
+ Sets the text writer that is used to render the view to the response.
+ The writer that is used to render the view to the response.
+
+
+ Sets the view-data dictionary by using the specified view data.
+ The view data.
+
+
+ Gets the temporary-data dictionary.
+ The temporary-data dictionary.
+
+
+ Gets the URL for the view.
+ The URL for the view.
+
+
+ Gets the view bag.
+ The view bag.
+
+
+ Gets or sets the view context.
+ The view context.
+
+
+ Gets or sets the view-data dictionary.
+ The view-data dictionary.
+
+
+ Gets or sets the view-data key.
+ The view-data key.
+
+
+ Gets the writer that is used to render the view to the response.
+ The writer that is used to render the view to the response.
+
+
+ Represents the information that is required in order to build a strongly typed user control.
+ The type of the model.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the AJAX script for the view.
+ The AJAX script for the view.
+
+
+ Gets the HTML for the view.
+ The HTML for the view.
+
+
+ Gets the model.
+ A reference to the data model.
+
+
+ Sets the view data for the view.
+ The view data.
+
+
+ Gets or sets the view data.
+ The view data.
+
+
+ Represents an abstract base-class implementation of the interface.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the area-enabled master location formats.
+ The area-enabled master location formats.
+
+
+ Gets or sets the area-enabled partial-view location formats.
+ The area-enabled partial-view location formats.
+
+
+ Gets or sets the area-enabled view location formats.
+ The area-enabled view location formats.
+
+
+ Creates the specified partial view by using the specified controller context.
+ A reference to the partial view.
+ The controller context.
+ The partial path for the new partial view.
+
+
+ Creates the specified view by using the controller context, path of the view, and path of the master view.
+ A reference to the view.
+ The controller context.
+ The path of the view.
+ The path of the master view.
+
+
+
+ Returns a value that indicates whether the file is in the specified path by using the specified controller context.
+ true if the file is in the specified path; otherwise, false.
+ The controller context.
+ The virtual path.
+
+
+ Gets or sets the file-name extensions that are used to locate a view.
+ The file-name extensions that are used to locate a view.
+
+
+ Finds the specified partial view by using the specified controller context.
+ The partial view.
+ The controller context.
+ The name of the partial view.
+ true to use the cached partial view.
+ The parameter is null (Nothing in Visual Basic).
+ The parameter is null or empty.
+
+
+ Finds the specified view by using the specified controller context and master view name.
+ The page view.
+ The controller context.
+ The name of the view.
+ The name of the master view.
+ true to use the cached view.
+ The parameter is null (Nothing in Visual Basic).
+ The parameter is null or empty.
+
+
+ Gets or sets the master location formats.
+ The master location formats.
+
+
+ Gets or sets the partial-view location formats.
+ The partial-view location formats.
+
+
+ Releases the specified view by using the specified controller context.
+ The controller context.
+ The view to release.
+
+
+ Gets or sets the view location cache.
+ The view location cache.
+
+
+ Gets or sets the view location formats.
+ The view location formats.
+
+
+ Gets or sets the virtual path provider.
+ The virtual path provider.
+
+
+ Represents the information that is needed to build a Web Forms page in ASP.NET MVC.
+
+
+ Initializes a new instance of the class using the controller context and view path.
+ The controller context.
+ The view path.
+
+
+ Initializes a new instance of the class using the controller context, view path, and the path to the master page.
+ The controller context.
+ The view path.
+ The path to the master page.
+
+
+ Initializes a new instance of the class using the controller context, view path, the path to the master page, and a instance.
+ The controller context.
+ The view path.
+ The path to the master page.
+ An instance of the view page activator interface.
+
+
+ Gets or sets the master path.
+ The master path.
+
+
+ Renders the view to the response.
+ An object that encapsulates the information that is required in order to render the view, which includes the controller context, form context, the temporary data, and the view data for the associated view.
+ The text writer object that is used to write HTML output.
+ The view page instance.
+
+
+ Represents a view engine that is used to render a Web Forms page to the response.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the specified view page activator.
+ An instance of a class that implements the interface.
+
+
+ Creates the specified partial view by using the specified controller context.
+ The partial view.
+ The controller context.
+ The partial path.
+
+
+ Creates the specified view by using the specified controller context and the paths of the view and master view.
+ The view.
+ The controller context.
+ The view path.
+ The master-view path.
+
+
+ Represents the properties and methods that are needed in order to render a view that uses ASP.NET Razor syntax.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the object that is used to render HTML using Ajax.
+ The object that is used to render HTML using Ajax.
+
+
+ Sets the view context and view data for the page.
+ The parent page.
+
+
+ Gets the object that is associated with the page.
+ The object that is associated with the page.
+
+
+ Runs the page hierarchy for the ASP.NET Razor execution pipeline.
+
+
+ Gets or sets the object that is used to render HTML elements.
+ The object that is used to render HTML elements.
+
+
+ Initializes the , , and classes.
+
+
+ Gets the Model property of the associated object.
+ The Model property of the associated object.
+
+
+ Sets the view data.
+ The view data.
+
+
+ Gets the temporary data to pass to the view.
+ The temporary data to pass to the view.
+
+
+ Gets or sets the URL of the rendered page.
+ The URL of the rendered page.
+
+
+ Gets the view bag.
+ The view bag.
+
+
+ Gets or sets the information that is used to render the view.
+ The information that is used to render the view, which includes the form context, the temporary data, and the view data of the associated view.
+
+
+ Gets or sets a dictionary that contains data to pass between the controller and the view.
+ A dictionary that contains data to pass between the controller and the view.
+
+
+ Represents the properties and methods that are needed in order to render a view that uses ASP.NET Razor syntax.
+ The type of the view data model.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the object that is used to render HTML markup using Ajax.
+ The object that is used to render HTML markup using Ajax.
+
+
+ Gets or sets the object that is used to render HTML elements.
+ The object that is used to render HTML elements.
+
+
+ Initializes the , , and classes.
+
+
+ Gets the Model property of the associated object.
+ The Model property of the associated object.
+
+
+ Sets the view data.
+ The view data.
+
+
+ Gets or sets a dictionary that contains data to pass between the controller and the view.
+ A dictionary that contains data to pass between the controller and the view.
+
+
+ Represents support for ASP.NET AJAX within an ASP.NET MVC application.
+
+
+ Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the action method.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ An object that provides options for the asynchronous request.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the action method.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the action method.
+ The name of the controller.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ An object that provides options for the asynchronous request.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the action method.
+ The name of the controller.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the action method.
+ The name of the controller.
+ The protocol for the URL, such as "http" or "https".
+ The host name for the URL.
+ The URL fragment name (the anchor name).
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the action method.
+ The name of the controller.
+ The protocol for the URL, such as "http" or "https".
+ The host name for the URL.
+ The URL fragment name (the anchor name).
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the action method.
+ The name of the controller.
+ An object that provides options for the asynchronous request.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the action method.
+ The name of the controller.
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the action method.
+ The name of the controller.
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the action method.
+ An object that provides options for the asynchronous request.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the action method.
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the action method.
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Writes an opening <form> tag to the response.
+ An opening <form> tag.
+ The AJAX helper.
+ The name of the action method that will handle the request.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ An object that provides options for the asynchronous request.
+
+
+ Writes an opening <form> tag to the response.
+ An opening <form> tag.
+ The AJAX helper.
+ The name of the action method that will handle the request.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Writes an opening <form> tag to the response.
+ An opening <form> tag.
+ The AJAX helper.
+ The name of the action method that will handle the request.
+ The name of the controller.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ An object that provides options for the asynchronous request.
+
+
+ Writes an opening <form> tag to the response.
+ An opening <form> tag.
+ The AJAX helper.
+ The name of the action method that will handle the request.
+ The name of the controller.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Writes an opening <form> tag to the response.
+ An opening <form> tag.
+ The AJAX helper.
+ The name of the action method that will handle the request.
+ The name of the controller.
+ An object that provides options for the asynchronous request.
+
+
+ Writes an opening <form> tag to the response.
+ An opening <form> tag.
+ The AJAX helper.
+ The name of the action method that will handle the request.
+ The name of the controller.
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+
+
+ Writes an opening <form> tag to the response.
+ An opening <form> tag.
+ The AJAX helper.
+ The name of the action method that will handle the request.
+ The name of the controller.
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Writes an opening <form> tag to the response.
+ An opening <form> tag.
+ The AJAX helper.
+ The name of the action method that will handle the request.
+ An object that provides options for the asynchronous request.
+
+
+ Writes an opening <form> tag to the response.
+ An opening <form> tag.
+ The AJAX helper.
+ The name of the action method that will handle the request.
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+
+
+ Writes an opening <form> tag to the response.
+ An opening <form> tag.
+ The AJAX helper.
+ The name of the action method that will handle the request.
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element..
+
+
+ Writes an opening <form> tag to the response.
+ An opening <form> tag.
+ The AJAX helper.
+ An object that provides options for the asynchronous request.
+
+
+ Writes an opening <form> tag to the response using the specified routing information.
+ An opening <form> tag.
+ The AJAX helper.
+ The name of the route to use to obtain the form post URL.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ An object that provides options for the asynchronous request.
+
+
+ Writes an opening <form> tag to the response using the specified routing information.
+ An opening <form> tag.
+ The AJAX helper.
+ The name of the route to use to obtain the form post URL.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Writes an opening <form> tag to the response using the specified routing information.
+ An opening <form> tag.
+ The AJAX helper.
+ The name of the route to use to obtain the form post URL.
+ An object that provides options for the asynchronous request.
+
+
+ Writes an opening <form> tag to the response using the specified routing information.
+ An opening <form> tag.
+ The AJAX helper.
+ The name of the route to use to obtain the form post URL.
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+
+
+ Writes an opening <form> tag to the response using the specified routing information.
+ An opening <form> tag.
+ The AJAX helper.
+ The name of the route to use to obtain the form post URL.
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Returns an HTML script element that contains a reference to a globalization script that defines the culture information.
+ A script element whose src attribute is set to the globalization script, as in the following example: <script type="text/javascript" src="/MvcApplication1/Scripts/Globalization/en-US.js"></script>
+ The AJAX helper object that this method extends.
+
+
+ Returns an HTML script element that contains a reference to a globalization script that defines the specified culture information.
+ An HTML script element whose src attribute is set to the globalization script, as in the following example:<script type="text/javascript" src="/MvcApplication1/Scripts/Globalization/en-US.js"></script>
+ The AJAX helper object that this method extends.
+ Encapsulates information about the target culture, such as date formats.
+ The parameter is null.
+
+
+ Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ An object that provides options for the asynchronous request.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the route to use to obtain the form post URL.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ An object that provides options for the asynchronous request.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the route to use to obtain the form post URL.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the route to use to obtain the form post URL.
+ The protocol for the URL, such as "http" or "https".
+ The host name for the URL.
+ The URL fragment name (the anchor name).
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the route to use to obtain the form post URL.
+ An object that provides options for the asynchronous request.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the route to use to obtain the form post URL.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the route to use to obtain the form post URL.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the route to use to obtain the form post URL.
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ The name of the route to use to obtain the form post URL.
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+ The parameter is null or empty.
+
+
+ Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript.
+ An anchor element.
+ The AJAX helper.
+ The inner text of the anchor element.
+ An object that contains the parameters for a route.
+ An object that provides options for the asynchronous request.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Represents option settings for running Ajax scripts in an ASP.NET MVC application.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the message to display in a confirmation window before a request is submitted.
+ The message to display in a confirmation window.
+
+
+ Gets or sets the HTTP request method ("Get" or "Post").
+ The HTTP request method. The default value is "Post".
+
+
+ Gets or sets the mode that specifies how to insert the response into the target DOM element.
+ The insertion mode ("InsertAfter", "InsertBefore", or "Replace"). The default value is "Replace".
+
+
+ Gets or sets a value, in milliseconds, that controls the duration of the animation when showing or hiding the loading element.
+ A value, in milliseconds, that controls the duration of the animation when showing or hiding the loading element.
+
+
+ Gets or sets the id attribute of an HTML element that is displayed while the Ajax function is loading.
+ The ID of the element that is displayed while the Ajax function is loading.
+
+
+ Gets or sets the name of the JavaScript function to call immediately before the page is updated.
+ The name of the JavaScript function to call before the page is updated.
+
+
+ Gets or sets the JavaScript function to call when response data has been instantiated but before the page is updated.
+ The JavaScript function to call when the response data has been instantiated.
+
+
+ Gets or sets the JavaScript function to call if the page update fails.
+ The JavaScript function to call if the page update fails.
+
+
+ Gets or sets the JavaScript function to call after the page is successfully updated.
+ The JavaScript function to call after the page is successfully updated.
+
+
+ Returns the Ajax options as a collection of HTML attributes to support unobtrusive JavaScript.
+ The Ajax options as a collection of HTML attributes to support unobtrusive JavaScript.
+
+
+ Gets or sets the ID of the DOM element to update by using the response from the server.
+ The ID of the DOM element to update.
+
+
+ Gets or sets the URL to make the request to.
+ The URL to make the request to.
+
+
+ Enumerates the AJAX script insertion modes.
+
+
+ Replace the element.
+
+
+ Insert before the element.
+
+
+ Insert after the element.
+
+
+ Provides information about an asynchronous action method, such as its name, controller, parameters, attributes, and filters.
+
+
+ Initializes a new instance of the class.
+
+
+ Invokes the asynchronous action method by using the specified parameters and controller context.
+ An object that contains the result of an asynchronous call.
+ The controller context.
+ The parameters of the action method.
+ The callback method.
+ An object that contains information to be used by the callback method. This parameter can be null.
+
+
+ Returns the result of an asynchronous operation.
+ The result of an asynchronous operation.
+ An object that represents the status of an asynchronous operation.
+
+
+ Executes the asynchronous action method by using the specified parameters and controller context.
+ The result of executing the asynchronous action method.
+ The controller context.
+ The parameters of the action method.
+
+
+ Represents a class that is responsible for invoking the action methods of an asynchronous controller.
+
+
+ Initializes a new instance of the class.
+
+
+ Invokes the asynchronous action method by using the specified controller context, action name, callback method, and state.
+ An object that contains the result of an asynchronous operation.
+ The controller context.
+ The name of the action.
+ The callback method.
+ An object that contains information to be used by the callback method. This parameter can be null.
+
+
+ Invokes the asynchronous action method by using the specified controller context, action descriptor, parameters, callback method, and state.
+ An object that contains the result of an asynchronous operation.
+ The controller context.
+ The action descriptor.
+ The parameters for the asynchronous action method.
+ The callback method.
+ An object that contains information to be used by the callback method. This parameter can be null.
+
+
+ Invokes the asynchronous action method by using the specified controller context, filters, action descriptor, parameters, callback method, and state.
+ An object that contains the result of an asynchronous operation.
+ The controller context.
+ The filters.
+ The action descriptor.
+ The parameters for the asynchronous action method.
+ The callback method.
+ An object that contains information to be used by the callback method. This parameter can be null.
+
+
+ Cancels the action.
+ true if the action was canceled; otherwise, false.
+ The user-defined object that qualifies or contains information about an asynchronous operation.
+
+
+ Cancels the action.
+ true if the action was canceled; otherwise, false.
+ The user-defined object that qualifies or contains information about an asynchronous operation.
+
+
+ Cancels the action.
+ true if the action was canceled; otherwise, false.
+ The user-defined object that qualifies or contains information about an asynchronous operation.
+
+
+ Returns the controller descriptor.
+ The controller descriptor.
+ The controller context.
+
+
+ Provides asynchronous operations for the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the synchronization context.
+ The synchronization context.
+
+
+ Notifies ASP.NET that all asynchronous operations are complete.
+
+
+ Occurs when the method is called.
+
+
+ Gets the number of outstanding operations.
+ The number of outstanding operations.
+
+
+ Gets the parameters that were passed to the asynchronous completion method.
+ The parameters that were passed to the asynchronous completion method.
+
+
+ Executes a callback in the current synchronization context.
+ The asynchronous action.
+
+
+ Gets or sets the asynchronous timeout value, in milliseconds.
+ The asynchronous timeout value, in milliseconds.
+
+
+ Defines the interface for an action invoker, which is used to invoke an asynchronous action in response to an HTTP request.
+
+
+ Invokes the specified action.
+ The status of the asynchronous result.
+ The controller context.
+ The name of the asynchronous action.
+ The callback method.
+ The state.
+
+
+ Cancels the asynchronous action.
+ true if the asynchronous method could be canceled; otherwise, false.
+ The asynchronous result.
+
+
+ Defines the methods that are required for an asynchronous controller.
+
+
+ Executes the specified request context.
+ The status of the asynchronous operation.
+ The request context.
+ The asynchronous callback method.
+ The state.
+
+
+ Ends the asynchronous operation.
+ The asynchronous result.
+
+
+ Provides a container for the asynchronous manager object.
+
+
+ Gets the asynchronous manager object.
+ The asynchronous manager object.
+
+
+ Provides a container that maintains a count of pending asynchronous operations.
+
+
+ Initializes a new instance of the class.
+
+
+ Occurs when an asynchronous method completes.
+
+
+ Gets the operation count.
+ The operation count.
+
+
+ Reduces the operation count by 1.
+ The updated operation count.
+
+
+ Reduces the operation count by the specified value.
+ The updated operation count.
+ The number of operations to reduce the count by.
+
+
+ Increments the operation count by one.
+ The updated operation count.
+
+
+ Increments the operation count by the specified value.
+ The updated operation count.
+ The number of operations to increment the count by.
+
+
+ Provides information about an asynchronous action method, such as its name, controller, parameters, attributes, and filters.
+
+
+ Initializes a new instance of the class.
+ An object that contains information about the method that begins the asynchronous operation (the method whose name ends with "Asynch").
+ An object that contains information about the completion method (method whose name ends with "Completed").
+ The name of the action.
+ The controller descriptor.
+
+
+ Gets the name of the action method.
+ The name of the action method.
+
+
+ Gets the method information for the asynchronous action method.
+ The method information for the asynchronous action method.
+
+
+ Begins running the asynchronous action method by using the specified parameters and controller context.
+ An object that contains the result of an asynchronous call.
+ The controller context.
+ The parameters of the action method.
+ The callback method.
+ An object that contains information to be used by the callback method. This parameter can be null.
+
+
+ Gets the method information for the asynchronous completion method.
+ The method information for the asynchronous completion method.
+
+
+ Gets the controller descriptor for the asynchronous action method.
+ The controller descriptor for the asynchronous action method.
+
+
+ Returns the result of an asynchronous operation.
+ The result of an asynchronous operation.
+ An object that represents the status of an asynchronous operation.
+
+
+ Returns an array of custom attributes that are defined for this member, excluding named attributes.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+
+
+ Returns an array of custom attributes that are defined for this member, identified by type.
+ An array of custom attributes, or an empty array if no custom attributes of the specified type exist.
+ The type of the custom attributes to return.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+
+
+
+ Returns the parameters of the action method.
+ The parameters of the action method.
+
+
+ Returns the action-method selectors.
+ The action-method selectors.
+
+
+ Determines whether one or more instances of the specified attribute type are defined for the action member.
+ true if an attribute of type that is represented by is defined for this member; otherwise, false.
+ The type of the custom attribute.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+
+
+ Gets the lazy initialized unique ID of the instance of this class.
+ The lazy initialized unique ID of the instance of this class.
+
+
+ Encapsulates information that describes an asynchronous controller, such as its name, type, and actions.
+
+
+ Initializes a new instance of the class.
+ The type of the controller.
+
+
+ Gets the type of the controller.
+ The type of the controller.
+
+
+ Finds an action method by using the specified name and controller context.
+ The information about the action method.
+ The controller context.
+ The name of the action.
+
+
+ Returns a list of action method descriptors in the controller.
+ A list of action method descriptors in the controller.
+
+
+ Returns custom attributes that are defined for this member, excluding named attributes.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+
+
+ Returns custom attributes of a specified type that are defined for this member, excluding named attributes.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ The type of the custom attributes.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+
+
+
+ Returns a value that indicates whether one or more instances of the specified custom attribute are defined for this member.
+ true if an attribute of the type represented by is defined for this member; otherwise, false.
+ The type of the custom attribute.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+
+
+ Represents an exception that occurred during the synchronous processing of an HTTP request in an ASP.NET MVC application.
+
+
+ Initializes a new instance of the class using a system-supplied message.
+
+
+ Initializes a new instance of the class using the specified message.
+ The message that describes the exception. The caller of this constructor must make sure that this string has been localized for the current system culture.
+
+
+ Initializes a new instance of the class using a specified error message and a reference to the inner exception that is the cause of this exception.
+ The message that describes the exception. The caller of this constructor must make sure that this string has been localized for the current system culture.
+ The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception.
+
+
+ When an action method returns either Task or Task<T> the provides information about the action.
+
+
+ Initializes a new instance of the class.
+ The task method information.
+ The action name.
+ The controller descriptor.
+
+
+ Gets the name of the action method.
+ The name of the action method.
+
+
+ Invokes the asynchronous action method using the specified parameters, controller context callback and state.
+ An object that contains the result of an asynchronous call.
+ The controller context.
+ The parameters of the action method.
+ The optional callback method.
+ An object that contains information to be used by the callback method. This parameter can be null.
+
+
+ Gets the controller descriptor.
+ The controller descriptor.
+
+
+ The result of an asynchronous operation.
+ An object that represents the status of an asynchronous operation.
+
+
+ Executes the asynchronous action method
+ The result of executing the asynchronous action method.
+ The controller context.
+ The parameters of the action method.
+
+
+ Returns an array of custom attributes that are defined for this member, excluding named attributes.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+
+
+ Returns an array of custom attributes that are defined for this member, identified by type.
+ An array of custom attributes, or an empty array if no custom attributes exist.
+ The type of the custom attributes.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+
+
+ Returns an array of all custom attributes applied to this member.
+ An array that contains all the custom attributes applied to this member, or an array with zero elements if no attributes are defined.
+ true to search this member's inheritance chain to find the attributes; otherwise, false.
+
+
+ Returns the parameters of the asynchronous action method.
+ The parameters of the asynchronous action method.
+
+
+ Returns the asynchronous action-method selectors
+ The asynchronous action-method selectors
+
+
+ Returns a value that indicates whether one or more instance of the specified custom attribute are defined for this member.
+ A value that indicates whether one or more instance of the specified custom attribute are defined for this member.
+ The type of the custom attribute.
+ true to look up the hierarchy chain for the inherited custom attribute; otherwise, false.
+
+
+ Gets information for the asynchronous task.
+ Information for the asynchronous task.
+
+
+ Gets the unique ID for the task.
+ The unique ID for the task.
+
+
+ Represents support for calling child action methods and rendering the result inline in a parent view.
+
+
+ Invokes the specified child action method and returns the result as an HTML string.
+ The child action result as an HTML string.
+ The HTML helper instance that this method extends.
+ The name of the action method to invoke.
+ The parameter is null.
+ The parameter is null or empty.
+ The required virtual path data cannot be found.
+
+
+ Invokes the specified child action method with the specified parameters and returns the result as an HTML string.
+ The child action result as an HTML string.
+ The HTML helper instance that this method extends.
+ The name of the action method to invoke.
+ An object that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them.
+ The parameter is null.
+ The parameter is null or empty.
+ The required virtual path data cannot be found.
+
+
+ Invokes the specified child action method using the specified controller name and returns the result as an HTML string.
+ The child action result as an HTML string.
+ The HTML helper instance that this method extends.
+ The name of the action method to invoke.
+ The name of the controller that contains the action method.
+ The parameter is null.
+ The parameter is null or empty.
+ The required virtual path data cannot be found.
+
+
+ Invokes the specified child action method using the specified parameters and controller name and returns the result as an HTML string.
+ The child action result as an HTML string.
+ The HTML helper instance that this method extends.
+ The name of the action method to invoke.
+ The name of the controller that contains the action method.
+ An object that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them.
+ The parameter is null.
+ The parameter is null or empty.
+ The required virtual path data cannot be found.
+
+
+ Invokes the specified child action method using the specified parameters and controller name and returns the result as an HTML string.
+ The child action result as an HTML string.
+ The HTML helper instance that this method extends.
+ The name of the action method to invoke.
+ The name of the controller that contains the action method.
+ A dictionary that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them.
+ The parameter is null.
+ The parameter is null or empty.
+ The required virtual path data cannot be found.
+
+
+ Invokes the specified child action method using the specified parameters and returns the result as an HTML string.
+ The child action result as an HTML string.
+ The HTML helper instance that this method extends.
+ The name of the action method to invoke.
+ A dictionary that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them.
+ The parameter is null.
+ The parameter is null or empty.
+ The required virtual path data cannot be found.
+
+
+ Invokes the specified child action method and renders the result inline in the parent view.
+ The HTML helper instance that this method extends.
+ The name of the child action method to invoke.
+ The parameter is null.
+ The parameter is null or empty.
+ The required virtual path data cannot be found.
+
+
+ Invokes the specified child action method using the specified parameters and renders the result inline in the parent view.
+ The HTML helper instance that this method extends.
+ The name of the child action method to invoke.
+ An object that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them.
+ The parameter is null.
+ The parameter is null or empty.
+ The required virtual path data cannot be found.
+
+
+ Invokes the specified child action method using the specified controller name and renders the result inline in the parent view.
+ The HTML helper instance that this method extends.
+ The name of the child action method to invoke.
+ The name of the controller that contains the action method.
+ The parameter is null.
+ The parameter is null or empty.
+ The required virtual path data cannot be found.
+
+
+ Invokes the specified child action method using the specified parameters and controller name and renders the result inline in the parent view.
+ The HTML helper instance that this method extends.
+ The name of the child action method to invoke.
+ The name of the controller that contains the action method.
+ An object that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them.
+ The parameter is null.
+ The parameter is null or empty.
+ The required virtual path data cannot be found.
+
+
+ Invokes the specified child action method using the specified parameters and controller name and renders the result inline in the parent view.
+ The HTML helper instance that this method extends.
+ The name of the child action method to invoke.
+ The name of the controller that contains the action method.
+ A dictionary that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them.
+ The parameter is null.
+ The parameter is null or empty.
+ The required virtual path data cannot be found.
+
+
+ Invokes the specified child action method using the specified parameters and renders the result inline in the parent view.
+ The HTML helper instance that this method extends.
+ The name of the child action method to invoke.
+ A dictionary that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them.
+ The parameter is null.
+ The parameter is null or empty.
+ The required virtual path data cannot be found.
+
+
+ Represents support for rendering object values as HTML.
+
+
+ Returns HTML markup for each property in the object that is represented by a string expression.
+ The HTML markup for each property in the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the properties to display.
+
+
+ Returns HTML markup for each property in the object that is represented by a string expression, using additional view data.
+ The HTML markup for each property in the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the properties to display.
+ An anonymous object that can contain additional view data that will be merged into the instance that is created for the template.
+
+
+ Returns HTML markup for each property in the object that is represented by the expression, using the specified template.
+ The HTML markup for each property in the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the properties to display.
+ The name of the template that is used to render the object.
+
+
+ Returns HTML markup for each property in the object that is represented by the expression, using the specified template and additional view data.
+ The HTML markup for each property in the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the properties to display.
+ The name of the template that is used to render the object.
+ An anonymous object that can contain additional view data that will be merged into the instance that is created for the template.
+
+
+ Returns HTML markup for each property in the object that is represented by the expression, using the specified template and an HTML field ID.
+ The HTML markup for each property in the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the properties to display.
+ The name of the template that is used to render the object.
+ A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name.
+
+
+ Returns HTML markup for each property in the object that is represented by the expression, using the specified template, HTML field ID, and additional view data.
+ The HTML markup for each property in the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the properties to display.
+ The name of the template that is used to render the object.
+ A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name.
+ An anonymous object that can contain additional view data that will be merged into the instance that is created for the template.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns HTML markup for each property in the model.
+ The HTML markup for each property in the model.
+ The HTML helper instance that this method extends.
+
+
+ Returns HTML markup for each property in the model, using additional view data.
+ The HTML markup for each property in the model.
+ The HTML helper instance that this method extends.
+ An anonymous object that can contain additional view data that will be merged into the instance that is created for the template.
+
+
+ Returns HTML markup for each property in the model using the specified template.
+ The HTML markup for each property in the model.
+ The HTML helper instance that this method extends.
+ The name of the template that is used to render the object.
+
+
+ Returns HTML markup for each property in the model, using the specified template and additional view data.
+ The HTML markup for each property in the model.
+ The HTML helper instance that this method extends.
+ The name of the template that is used to render the object.
+ An anonymous object that can contain additional view data that will be merged into the instance that is created for the template.
+
+
+ Returns HTML markup for each property in the model using the specified template and HTML field ID.
+ The HTML markup for each property in the model.
+ The HTML helper instance that this method extends.
+ The name of the template that is used to render the object.
+ A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name.
+
+
+ Returns HTML markup for each property in the model, using the specified template, an HTML field ID, and additional view data.
+ The HTML markup for each property in the model.
+ The HTML helper instance that this method extends.
+ The name of the template that is used to render the object.
+ A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name.
+ An anonymous object that can contain additional view data that will be merged into the instance that is created for the template.
+
+
+ Gets the display name from the model meta-data.
+
+
+ Gets the display name from the model meta-data.
+ The display name.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the display name.
+
+
+ Gets the display name for the model.
+ The display name for the model.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the display name.
+ The type of the model.
+ The type of the value.
+
+
+ Gets the display name for the model.
+ The display name for the model.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the display name.
+ The type of the model.
+ The type of the value.
+
+
+ Gets the display name for the model.
+ The display name for the model.
+ The HTML helper instance that this method extends.
+
+
+ Provides a way to render object values as HTML.
+
+
+ Returns HTML markup for each property in the object that is represented by the specified expression.
+ The HTML markup for each property in the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the properties to display.
+
+
+
+
+
+
+ Represents support for the HTML input element in an application.
+
+
+ Returns an HTML input element for each property in the object that is represented by the expression.
+ An HTML input element for each property in the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the properties to display.
+
+
+ Returns an HTML input element for each property in the object that is represented by the expression, using additional view data.
+ An HTML input element for each property in the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the properties to display.
+ An anonymous object that can contain additional view data that will be merged into the instance that is created for the template.
+
+
+ Returns an HTML input element for each property in the object that is represented by the expression, using the specified template.
+ An HTML input element for each property in the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the properties to display.
+ The name of the template to use to render the object.
+
+
+ Returns an HTML input element for each property in the object that is represented by the expression, using the specified template and additional view data.
+ An HTML input element for each property in the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the properties to display.
+ The name of the template to use to render the object.
+ An anonymous object that can contain additional view data that will be merged into the instance that is created for the template.
+
+
+ Returns an HTML input element for each property in the object that is represented by the expression, using the specified template and HTML field name.
+ An HTML input element for each property in the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the properties to display.
+ The name of the template to use to render the object.
+ A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name.
+
+
+ Returns an HTML input element for each property in the object that is represented by the expression, using the specified template, HTML field name, and additional view data.
+ An HTML input element for each property in the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the properties to display.
+ The name of the template to use to render the object.
+ A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name.
+ An anonymous object that can contain additional view data that will be merged into the instance that is created for the template.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns an HTML input element for each property in the model.
+ An HTML input element for each property in the model.
+ The HTML helper instance that this method extends.
+
+
+ Returns an HTML input element for each property in the model, using additional view data.
+ An HTML input element for each property in the model.
+ The HTML helper instance that this method extends.
+ An anonymous object that can contain additional view data that will be merged into the instance that is created for the template.
+
+
+ Returns an HTML input element for each property in the model, using the specified template.
+ An HTML input element for each property in the model and in the specified template.
+ The HTML helper instance that this method extends.
+ The name of the template to use to render the object.
+
+
+ Returns an HTML input element for each property in the model, using the specified template and additional view data.
+ An HTML input element for each property in the model.
+ The HTML helper instance that this method extends.
+ The name of the template to use to render the object.
+ An anonymous object that can contain additional view data that will be merged into the instance that is created for the template.
+
+
+ Returns an HTML input element for each property in the model, using the specified template name and HTML field name.
+ An HTML input element for each property in the model and in the named template.
+ The HTML helper instance that this method extends.
+ The name of the template to use to render the object.
+ A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name.
+
+
+ Returns an HTML input element for each property in the model, using the template name, HTML field name, and additional view data.
+ An HTML input element for each property in the model.
+ The HTML helper instance that this method extends.
+ The name of the template to use to render the object.
+ A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name.
+ An anonymous object that can contain additional view data that will be merged into the instance that is created for the template.
+
+
+ Represents support for HTML in an application.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the action method.
+ The name of the controller.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the action method.
+ The name of the controller.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the action method.
+ The name of the controller.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ The HTTP method for processing the form, either GET or POST.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the action method.
+ The name of the controller.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ The HTTP method for processing the form, either GET or POST.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the action method.
+ The name of the controller.
+ The HTTP method for processing the form, either GET or POST.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the action method.
+ The name of the controller.
+ The HTTP method for processing the form, either GET or POST.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the action method.
+ The name of the controller.
+ The HTTP method for processing the form, either GET or POST.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the action method.
+ The name of the controller.
+ An object that contains the parameters for a route.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the action method.
+ The name of the controller.
+ An object that contains the parameters for a route.
+ The HTTP method for processing the form, either GET or POST.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the action method.
+ The name of the controller.
+ An object that contains the parameters for a route.
+ The HTTP method for processing the form, either GET or POST.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ An object that contains the parameters for a route.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the route to use to obtain the form-post URL.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the route to use to obtain the form-post URL.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the route to use to obtain the form-post URL.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ The HTTP method for processing the form, either GET or POST.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the route to use to obtain the form-post URL.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax.
+ The HTTP method for processing the form, either GET or POST.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the route to use to obtain the form-post URL.
+ The HTTP method for processing the form, either GET or POST.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the route to use to obtain the form-post URL.
+ The HTTP method for processing the form, either GET or POST.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the route to use to obtain the form-post URL.
+ The HTTP method for processing the form, either GET or POST.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the route to use to obtain the form-post URL.
+ An object that contains the parameters for a route
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the route to use to obtain the form-post URL.
+ An object that contains the parameters for a route
+ The HTTP method for processing the form, either GET or POST.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ The name of the route to use to obtain the form-post URL.
+ An object that contains the parameters for a route
+ The HTTP method for processing the form, either GET or POST.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target.
+ An opening <form> tag.
+ The HTML helper instance that this method extends.
+ An object that contains the parameters for a route
+
+
+ Renders the closing </form> tag to the response.
+ The HTML helper instance that this method extends.
+
+
+ Represents support for HTML input controls in an application.
+
+
+ Returns a check box input element by using the specified HTML helper and the name of the form field.
+ An input element whose type attribute is set to "checkbox".
+ The HTML helper instance that this method extends.
+ The name of the form field.
+
+
+ Returns a check box input element by using the specified HTML helper, the name of the form field, and a value to indicate whether the check box is selected.
+ An input element whose type attribute is set to "checkbox".
+ The HTML helper instance that this method extends.
+ The name of the form field.
+ true to select the check box; otherwise, false.
+
+
+ Returns a check box input element by using the specified HTML helper, the name of the form field, a value to indicate whether the check box is selected, and the HTML attributes.
+ An input element whose type attribute is set to "checkbox".
+ The HTML helper instance that this method extends.
+ The name of the form field.
+ true to select the check box; otherwise, false.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Returns a check box input element by using the specified HTML helper, the name of the form field, a value that indicates whether the check box is selected, and the HTML attributes.
+ An input element whose type attribute is set to "checkbox".
+ The HTML helper instance that this method extends.
+ The name of the form field.
+ true to select the check box; otherwise, false.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Returns a check box input element by using the specified HTML helper, the name of the form field, and the HTML attributes.
+ An input element whose type attribute is set to "checkbox".
+ The HTML helper instance that this method extends.
+ The name of the form field.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Returns a check box input element by using the specified HTML helper, the name of the form field, and the HTML attributes.
+ An input element whose type attribute is set to "checkbox".
+ The HTML helper instance that this method extends.
+ The name of the form field.
+ An object that contains the HTML attributes to set for the element.
+
+
+
+
+
+
+
+
+ Returns a hidden input element by using the specified HTML helper and the name of the form field.
+ An input element whose type attribute is set to "hidden".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+
+
+ Returns a hidden input element by using the specified HTML helper, the name of the form field, and the value.
+ An input element whose type attribute is set to "hidden".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+ The value of the hidden input element. The value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. If the element is not found in the or the , the value parameter is used.
+
+
+ Returns a hidden input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes.
+ An input element whose type attribute is set to "hidden".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+ The value of the hidden input element. The value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. If the element is not found in the object or the object, the value parameter is used.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Returns a hidden input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes.
+ An input element whose type attribute is set to "hidden".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+ The value of the hidden input element The value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. If the element is not found in the object or the object, the value parameter is used.
+ An object that contains the HTML attributes to set for the element.
+
+
+
+
+
+
+
+
+
+
+ Returns a password input element by using the specified HTML helper and the name of the form field.
+ An input element whose type attribute is set to "password".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+
+
+ Returns a password input element by using the specified HTML helper, the name of the form field, and the value.
+ An input element whose type attribute is set to "password".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+ The value of the password input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object.
+
+
+ Returns a password input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes.
+ An input element whose type attribute is set to "password".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+ The value of the password input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Returns a password input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes.
+ An input element whose type attribute is set to "password".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+ The value of the password input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object.
+ An object that contains the HTML attributes to set for the element.
+
+
+
+
+
+
+
+
+
+
+ Returns a radio button input element that is used to present mutually exclusive options.
+ An input element whose type attribute is set to "radio".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+ If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected.
+ The parameter is null or empty.
+ The parameter is null.
+
+
+ Returns a radio button input element that is used to present mutually exclusive options.
+ An input element whose type attribute is set to "radio".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+ If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected.
+ true to select the radio button; otherwise, false.
+ The parameter is null or empty.
+ The parameter is null.
+
+
+ Returns a radio button input element that is used to present mutually exclusive options.
+ An input element whose type attribute is set to "radio".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+ If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected.
+ true to select the radio button; otherwise, false.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+ The parameter is null.
+
+
+ Returns a radio button input element that is used to present mutually exclusive options.
+ An input element whose type attribute is set to "radio".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+ If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected.
+ true to select the radio button; otherwise, false.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+ The parameter is null.
+
+
+ Returns a radio button input element that is used to present mutually exclusive options.
+ An input element whose type attribute is set to "radio".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+ If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+ The parameter is null.
+
+
+ Returns a radio button input element that is used to present mutually exclusive options.
+ An input element whose type attribute is set to "radio".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+ If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+ The parameter is null.
+
+
+
+
+
+
+
+
+
+
+ Returns a text input element by using the specified HTML helper and the name of the form field.
+ An input element whose type attribute is set to "text".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+
+
+ Returns a text input element by using the specified HTML helper, the name of the form field, and the value.
+ An input element whose type attribute is set to "text".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+ The value of the text input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object.
+
+
+ Returns a text input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes.
+ An input element whose type attribute is set to "text".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+ The value of the text input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Returns a text input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes.
+ An input element whose type attribute is set to "text".
+ The HTML helper instance that this method extends.
+ The name of the form field and the key that is used to look up the value.
+ The value of the text input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object.
+ An object that contains the HTML attributes to set for the element.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents support for the HTML label element in an ASP.NET MVC view.
+
+
+ Returns an HTML label element and the property name of the property that is represented by the specified expression.
+ An HTML label element and the property name of the property that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the property to display.
+
+
+
+
+ Returns an HTML label element and the property name of the property that is represented by the specified expression using the label text.
+ An HTML label element and the property name of the property that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the property to display.
+ The label text to display.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns an HTML label element and the property name of the property that is represented by the model.
+ An HTML label element and the property name of the property that is represented by the model.
+ The HTML helper instance that this method extends.
+
+
+
+
+ Returns an HTML label element and the property name of the property that is represented by the specified expression using the label text.
+ An HTML label element and the property name of the property that is represented by the expression.
+ The HTML helper instance that this method extends.
+ The label text to display.
+
+
+
+
+ Represents support for HTML links in an application.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the action.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the action.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the action.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+ An object that contains the HTML attributes for the element. The attributes are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the action.
+ The name of the controller.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the action.
+ The name of the controller.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the action.
+ The name of the controller.
+ The protocol for the URL, such as "http" or "https".
+ The host name for the URL.
+ The URL fragment name (the anchor name).
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the action.
+ The name of the controller.
+ The protocol for the URL, such as "http" or "https".
+ The host name for the URL.
+ The URL fragment name (the anchor name).
+ An object that contains the parameters for a route.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the action.
+ The name of the controller.
+ An object that contains the parameters for a route.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the action.
+ An object that contains the parameters for a route.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the action.
+ An object that contains the parameters for a route.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the route that is used to return a virtual path.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the route that is used to return a virtual path.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the route that is used to return a virtual path.
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the route that is used to return a virtual path.
+ The protocol for the URL, such as "http" or "https".
+ The host name for the URL.
+ The URL fragment name (the anchor name).
+ An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the route that is used to return a virtual path.
+ The protocol for the URL, such as "http" or "https".
+ The host name for the URL.
+ The URL fragment name (the anchor name).
+ An object that contains the parameters for a route.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the route that is used to return a virtual path.
+ An object that contains the parameters for a route.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ The name of the route that is used to return a virtual path.
+ An object that contains the parameters for a route.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ An object that contains the parameters for a route.
+ The parameter is null or empty.
+
+
+ Returns an anchor element (a element) that contains the virtual path of the specified action.
+ An anchor element (a element).
+ The HTML helper instance that this method extends.
+ The inner text of the anchor element.
+ An object that contains the parameters for a route.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Represents an HTML form element in an MVC view.
+
+
+ Initializes a new instance of the class using the specified HTTP response object.
+ The HTTP response object.
+ The parameter is null.
+
+
+ Initializes a new instance of the class using the specified view context.
+ An object that encapsulates the information that is required in order to render a view.
+ The parameter is null.
+
+
+ Releases all resources that are used by the current instance of the class.
+
+
+ Releases unmanaged and, optionally, managed resources used by the current instance of the class.
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+ Ends the form and disposes of all form resources.
+
+
+ Gets the HTML ID and name attributes of the string.
+
+
+ Gets the ID of the string.
+ The HTML ID attribute value for the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the ID.
+
+
+ Gets the ID of the string
+ The HTML ID attribute value for the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the ID.
+ The type of the model.
+ The type of the property.
+
+
+ Gets the ID of the string.
+ The HTML ID attribute value for the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+
+
+ Gets the full HTML field name for the object that is represented by the expression.
+ The full HTML field name for the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the name.
+
+
+ Gets the full HTML field name for the object that is represented by the expression.
+ The full HTML field name for the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object that contains the name.
+ The type of the model.
+ The type of the property.
+
+
+ Gets the full HTML field name for the object that is represented by the expression.
+ The full HTML field name for the object that is represented by the expression.
+ The HTML helper instance that this method extends.
+
+
+ Represents the functionality to render a partial view as an HTML-encoded string.
+
+
+ Renders the specified partial view as an HTML-encoded string.
+ The partial view that is rendered as an HTML-encoded string.
+ The HTML helper instance that this method extends.
+ The name of the partial view to render.
+
+
+ Renders the specified partial view as an HTML-encoded string.
+ The partial view that is rendered as an HTML-encoded string.
+ The HTML helper instance that this method extends.
+ The name of the partial view to render.
+ The model for the partial view.
+
+
+ Renders the specified partial view as an HTML-encoded string.
+ The partial view that is rendered as an HTML-encoded string.
+ The HTML helper instance that this method extends.
+ The name of the partial view.
+ The model for the partial view.
+ The view data dictionary for the partial view.
+
+
+ Renders the specified partial view as an HTML-encoded string.
+ The partial view that is rendered as an HTML-encoded string.
+ The HTML helper instance that this method extends.
+ The name of the partial view to render.
+ The view data dictionary for the partial view.
+
+
+ Provides support for rendering a partial view.
+
+
+ Renders the specified partial view by using the specified HTML helper.
+ The HTML helper.
+ The name of the partial view
+
+
+ Renders the specified partial view, passing it a copy of the current object, but with the Model property set to the specified model.
+ The HTML helper.
+ The name of the partial view.
+ The model.
+
+
+ Renders the specified partial view, replacing the partial view's ViewData property with the specified object and setting the Model property of the view data to the specified model.
+ The HTML helper.
+ The name of the partial view.
+ The model for the partial view.
+ The view data for the partial view.
+
+
+ Renders the specified partial view, replacing its ViewData property with the specified object.
+ The HTML helper.
+ The name of the partial view.
+ The view data.
+
+
+ Represents support for making selections in a list.
+
+
+ Returns a single-selection select element using the specified HTML helper and the name of the form field.
+ An HTML select element.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ The parameter is null or empty.
+
+
+ Returns a single-selection select element using the specified HTML helper, the name of the form field, and the specified list items.
+ An HTML select element with an option subelement for each item in the list.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ A collection of objects that are used to populate the drop-down list.
+ The parameter is null or empty.
+
+
+ Returns a single-selection select element using the specified HTML helper, the name of the form field, the specified list items, and the specified HTML attributes.
+ An HTML select element with an option subelement for each item in the list.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ A collection of objects that are used to populate the drop-down list.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns a single-selection select element using the specified HTML helper, the name of the form field, the specified list items, and the specified HTML attributes.
+ An HTML select element with an option subelement for each item in the list.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ A collection of objects that are used to populate the drop-down list.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns a single-selection select element using the specified HTML helper, the name of the form field, the specified list items, and an option label.
+ An HTML select element with an option subelement for each item in the list.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ A collection of objects that are used to populate the drop-down list.
+ The text for a default empty item. This parameter can be null.
+ The parameter is null or empty.
+
+
+ Returns a single-selection select element using the specified HTML helper, the name of the form field, the specified list items, an option label, and the specified HTML attributes.
+ An HTML select element with an option subelement for each item in the list.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ A collection of objects that are used to populate the drop-down list.
+ The text for a default empty item. This parameter can be null.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns a single-selection select element using the specified HTML helper, the name of the form field, the specified list items, an option label, and the specified HTML attributes.
+ An HTML select element with an option subelement for each item in the list.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ A collection of objects that are used to populate the drop-down list.
+ The text for a default empty item. This parameter can be null.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns a single-selection select element using the specified HTML helper, the name of the form field, and an option label.
+ An HTML select element with an option subelement for each item in the list.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ The text for a default empty item. This parameter can be null.
+ The parameter is null or empty.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a multi-select select element using the specified HTML helper and the name of the form field.
+ An HTML select element.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ The parameter is null or empty.
+
+
+ Returns a multi-select select element using the specified HTML helper, the name of the form field, and the specified list items.
+ An HTML select element with an option subelement for each item in the list.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ A collection of objects that are used to populate the drop-down list.
+ The parameter is null or empty.
+
+
+ Returns a multi-select select element using the specified HTML helper, the name of the form field, the specified list items, and the specified HMTL attributes.
+ An HTML select element with an option subelement for each item in the list..
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ A collection of objects that are used to populate the drop-down list.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+ Returns a multi-select select element using the specified HTML helper, the name of the form field, and the specified list items.
+ An HTML select element with an option subelement for each item in the list..
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ A collection of objects that are used to populate the drop-down list.
+ An object that contains the HTML attributes to set for the element.
+ The parameter is null or empty.
+
+
+
+
+
+
+
+
+
+
+ Represents support for HTML textarea controls.
+
+
+ Returns the specified textarea element by using the specified HTML helper and the name of the form field.
+ The textarea element.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+
+
+ Returns the specified textarea element by using the specified HTML helper, the name of the form field, and the specified HTML attributes.
+ The textarea element.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Returns the specified textarea element by using the specified HTML helper and HTML attributes.
+ The textarea element.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Returns the specified textarea element by using the specified HTML helper, the name of the form field, and the text content.
+ The textarea element.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ The text content.
+
+
+ Returns the specified textarea element by using the specified HTML helper, the name of the form field, the text content, and the specified HTML attributes.
+ The textarea element.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ The text content.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Returns the specified textarea element by using the specified HTML helper, the name of the form field, the text content, the number of rows and columns, and the specified HTML attributes.
+ The textarea element.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ The text content.
+ The number of rows.
+ The number of columns.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Returns the specified textarea element by using the specified HTML helper, the name of the form field, the text content, the number of rows and columns, and the specified HTML attributes.
+ The textarea element.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ The text content.
+ The number of rows.
+ The number of columns.
+ An object that contains the HTML attributes to set for the element.
+
+
+ Returns the specified textarea element by using the specified HTML helper, the name of the form field, the text content, and the specified HTML attributes.
+ The textarea element.
+ The HTML helper instance that this method extends.
+ The name of the form field to return.
+ The text content.
+ An object that contains the HTML attributes to set for the element.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides support for validating the input from an HTML form.
+
+
+ Gets or sets the name of the resource file (class key) that contains localized string values.
+ The name of the resource file (class key).
+
+
+ Retrieves the validation metadata for the specified model and applies each rule to the data field.
+ The HTML helper instance that this method extends.
+ The name of the property or model object that is being validated.
+ The parameter is null.
+
+
+
+
+
+
+ Displays a validation message if an error exists for the specified field in the object.
+ If the property or object is valid, an empty string; otherwise, a span element that contains an error message.
+ The HTML helper instance that this method extends.
+ The name of the property or model object that is being validated.
+
+
+ Displays a validation message if an error exists for the specified field in the object.
+ If the property or object is valid, an empty string; otherwise, a span element that contains an error message.
+ The HTML helper instance that this method extends.
+ The name of the property or model object that is being validated.
+ An object that contains the HTML attributes for the element.
+
+
+ Displays a validation message if an error exists for the specified field in the object.
+ If the property or object is valid, an empty string; otherwise, a span element that contains an error message.
+ The HTML helper instance that this method extends.
+ The name of the property or model object that is being validated.
+ An object that contains the HTML attributes for the element.
+
+
+ Displays a validation message if an error exists for the specified field in the object.
+ If the property or object is valid, an empty string; otherwise, a span element that contains an error message.
+ The HTML helper instance that this method extends.
+ The name of the property or model object that is being validated.
+ The message to display if the specified field contains an error.
+
+
+ Displays a validation message if an error exists for the specified field in the object.
+ If the property or object is valid, an empty string; otherwise, a span element that contains an error message.
+ The HTML helper instance that this method extends.
+ The name of the property or model object that is being validated.
+ The message to display if the specified field contains an error.
+ An object that contains the HTML attributes for the element.
+
+
+ Displays a validation message if an error exists for the specified field in the object.
+ If the property or object is valid, an empty string; otherwise, a span element that contains an error message.
+ The HTML helper instance that this method extends.
+ The name of the property or model object that is being validated.
+ The message to display if the specified field contains an error.
+ An object that contains the HTML attributes for the element.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns an unordered list (ul element) of validation messages that are in the object.
+ A string that contains an unordered list (ul element) of validation messages.
+ The HTML helper instance that this method extends.
+
+
+ Returns an unordered list (ul element) of validation messages that are in the object and optionally displays only model-level errors.
+ A string that contains an unordered list (ul element) of validation messages.
+ The HTML helper instance that this method extends.
+ true to have the summary display model-level errors only, or false to have the summary display all errors.
+
+
+ Returns an unordered list (ul element) of validation messages that are in the object and optionally displays only model-level errors.
+ A string that contains an unordered list (ul element) of validation messages.
+ The HTML helper instance that this method extends.
+ true to have the summary display model-level errors only, or false to have the summary display all errors.
+ The message to display with the validation summary.
+
+
+ Returns an unordered list (ul element) of validation messages that are in the object and optionally displays only model-level errors.
+ A string that contains an unordered list (ul element) of validation messages.
+ The HTML helper instance that this method extends.
+ true to have the summary display model-level errors only, or false to have the summary display all errors.
+ The message to display with the validation summary.
+ A dictionary that contains the HTML attributes for the element.
+
+
+ Returns an unordered list (ul element) of validation messages that are in the object and optionally displays only model-level errors.
+ A string that contains an unordered list (ul element) of validation messages.
+ The HTML helper instance that this method extends.
+ true to have the summary display model-level errors only, or false to have the summary display all errors.
+ The message to display with the validation summary.
+ An object that contains the HTML attributes for the element.
+
+
+ Returns an unordered list (ul element) of validation messages that are in the object.
+ A string that contains an unordered list (ul element) of validation messages.
+ The HMTL helper instance that this method extends.
+ The message to display if the specified field contains an error.
+
+
+ Returns an unordered list (ul element) of validation messages that are in the object.
+ A string that contains an unordered list (ul element) of validation messages.
+ The HTML helper instance that this method extends.
+ The message to display if the specified field contains an error.
+ A dictionary that contains the HTML attributes for the element.
+
+
+ Returns an unordered list (ul element) of validation messages in the object.
+ A string that contains an unordered list (ul element) of validation messages.
+ The HTML helper instance that this method extends.
+ The message to display if the specified field contains an error.
+ An object that contains the HTML attributes for the element.
+
+
+ Provides a mechanism to get view data, model data and model state.
+
+
+ Gets the value of the object identified by the expression.
+ The value of the object identified by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object.
+
+
+ Gets the value of the object identified by the expression.
+ The value of the object identified by the expression.
+ The HTML helper instance that this method extends.
+ The name of the object.
+
+
+ Gets the value of the object identified by the expression.
+ The value of the object identified by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object.
+ The model.
+ The property.
+
+
+ Gets the value of the object identified by the expression.
+ The value of the object identified by the expression.
+ The HTML helper instance that this method extends.
+ An expression that identifies the object.
+ A sting used to format the value from T:System.Web.Mvc.ModelMetadata or from the ViewData for the current model.
+ The model.
+ The property.
+
+
+ Gets the value of the object identified by the expression.
+ The value of the object identified by the expression.
+ The HTML helper instance that this method extends.
+
+
+ Gets the value of the object identified by the expression.
+ The value of the object identified by the expression.
+ The HTML helper instance that this method extends.
+ A sting used to format the value from T:System.Web.Mvc.ModelMetadata or from the ViewData for the current model.
+
+
+
+
+
+
+ Extends the VBCodeParser class by adding support for the @model keyword.
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Configures the ASP.NET Razor parser and code generator for a specified file.
+
+
+ Initializes a new instance of the class.
+ The virtual path of the ASP.NET Razor file.
+ The physical path of the ASP.NET Razor file.
+
+
+ Returns the ASP.NET MVC language-specific Razor code generator.
+ The ASP.NET MVC language-specific Razor code generator.
+ The C# or Visual Basic code generator.
+
+
+ Returns the ASP.NET MVC language-specific Razor code parser using the specified language parser.
+ The ASP.NET MVC language-specific Razor code parser.
+ The C# or Visual Basic code parser.
+
+
+
\ No newline at end of file
diff --git a/packages/AspNetRazor.Core.2.0.20126.16343/AspNetRazor.Core.2.0.20126.16343.nupkg b/packages/AspNetRazor.Core.2.0.20126.16343/AspNetRazor.Core.2.0.20126.16343.nupkg
new file mode 100644
index 0000000..9319fba
Binary files /dev/null and b/packages/AspNetRazor.Core.2.0.20126.16343/AspNetRazor.Core.2.0.20126.16343.nupkg differ
diff --git a/packages/AspNetRazor.Core.2.0.20126.16343/lib/net40/System.Web.Razor.dll b/packages/AspNetRazor.Core.2.0.20126.16343/lib/net40/System.Web.Razor.dll
new file mode 100644
index 0000000..470f0c7
Binary files /dev/null and b/packages/AspNetRazor.Core.2.0.20126.16343/lib/net40/System.Web.Razor.dll differ
diff --git a/packages/AspNetRazor.Core.2.0.20126.16343/lib/net40/System.Web.Razor.xml b/packages/AspNetRazor.Core.2.0.20126.16343/lib/net40/System.Web.Razor.xml
new file mode 100644
index 0000000..cd461cb
--- /dev/null
+++ b/packages/AspNetRazor.Core.2.0.20126.16343/lib/net40/System.Web.Razor.xml
@@ -0,0 +1,4323 @@
+
+
+
+ System.Web.Razor
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ .
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ Enumerates the list of Visual Basic keywords.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
\ No newline at end of file
diff --git a/packages/AspNetRazor.Core.2.0.20126.16343/tools/Install.ps1 b/packages/AspNetRazor.Core.2.0.20126.16343/tools/Install.ps1
new file mode 100644
index 0000000..6ad663f
--- /dev/null
+++ b/packages/AspNetRazor.Core.2.0.20126.16343/tools/Install.ps1
@@ -0,0 +1,180 @@
+param($installPath, $toolsPath, $package, $project)
+
+if ($project.Type -eq 'Web Site') {
+ Import-Module (Join-Path $toolsPath VS.psd1)
+
+ $srcFiles = Join-Path $installPath "lib\net40\*.dll"
+
+ $projectRoot = Get-ProjectRoot $project
+ if (!$projectRoot) {
+ return;
+ }
+
+ $destDirectory = Join-Path $projectRoot "bin"
+ $fileSystem = Get-VsFileSystem
+
+ ls $srcFiles -Filter *.dll | %{
+ $destPath = Join-Path $destDirectory $_.Name
+ if (!(Test-Path $destPath)) {
+ $fileStream = $null
+ try {
+ $fileStream = [System.IO.File]::OpenRead($_.FullName)
+ $fileSystem.AddFile($destPath, $fileStream)
+ } catch {
+ # We don't want an exception to surface if we can't add the file for some reason
+ } finally {
+ if ($fileStream -ne $null) {
+ $fileStream.Dispose()
+ }
+ }
+ }
+ }
+}
+
+# SIG # Begin signature block
+# MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUoGth3MbLCESGRhoTpqwG6S5P
+# cz2gghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5
+# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
+# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
+# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy
+# MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
+# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
+# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
+# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5
+# z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6
+# ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN
+# KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA
+# dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb
+# cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH
+# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm
+# 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF
+# dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
+# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
+# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
+# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP
+# mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v
+# fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX
+# 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8
+# Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA
+# XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC
+# A6KgAwIBAgIKYQUTNgAAAAAAGjANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
+# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
+# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
+# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE3WhcNMTIxMDI1MjA0MjE3WjCBszEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
+# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjE1OUMtQTNGNy0yNTcwMSUwIwYD
+# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
+# AQEFAAOCAQ8AMIIBCgKCAQEAnDSYGckJKWOZAhZ1qIhXfaG7qUES/GSRpdYFeL93
+# 3OzmrrhQTsDjGr3tt/34IIpxOapyknKfignlE++RQe1hJWtRre6oQ7VhQiyd8h2x
+# 0vy39Xujc3YTsyuj25RhgFWhD23d2OwW/4V/lp6IfwAujnokumidj8bK9JB5euGb
+# 7wZdfvguw2oVnDwUL+fVlMgiG1HLqVWGIbda80ESOZ/wValOqiUrY/uRcjwPfMCW
+# ctzBo8EIyt7FybXACl+lnAuqcgpdCkB9LpjQq7KIj4aA6H3RvlVr4FgsyDY/+eYR
+# w/BDBYV4AxflLKcpfNPilRcAbNvcrTwZOgLgfWLUzvYdPQIDAQABo4IBCTCCAQUw
+# HQYDVR0OBBYEFPaDiyCHEe6Dy9vehaLSaIY3YXSQMB8GA1UdIwQYMBaAFCM0+NlS
+# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
+# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
+# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
+# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
+# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAGL0BQ1P5xtr
+# gudSDN95jKhVgTOX06TKyf6vSNt72m96KE/H0LeJ2NGmmcyRVgA7OOi3Mi/u+c9r
+# 2Zje1gL1QlhSa47aQNwWoLPUvyYVy0hCzNP9tPrkRIlmD0IOXvcEnyNIW7SJQcTa
+# bPg29D/CHhXfmEwAxLLs3l8BAUOcuELWIsiTmp7JpRhn/EeEHpFdm/J297GOch2A
+# djw2EUbKfjpI86/jSfYXM427AGOCnFejVqfDbpCjPpW3/GTRXRjCCwFQY6f889GA
+# noTjMjTdV5VAo21+2usuWgi0EAZeMskJ6TKCcRan+savZpiJ+dmetV8QI6N3gPJN
+# 1igAclCFvOUwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA
+# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
+# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+# eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT
+# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
+# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l
+# LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf
+# 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc
+# MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP
+# CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36
+# ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E
+# 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB
+# ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+# BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3
+# FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw
+# XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m
+# dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+# ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0
+# LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj
+# cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud
+# JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13
+# 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd
+# AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw
+# +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2
+# MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl
+# XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0
+# BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz
+# sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv
+# pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f
+# UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH
+# E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F
+# W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ
+# KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk
+# ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh
+# dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj
+# cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+# ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF
+# +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9
+# cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE
+# UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG
+# 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis
+# NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3
+# FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD
+# AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8
+# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is
+# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj
+# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB
+# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy
+# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho
+# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD
+# ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe
+# TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA
+# bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF
+# BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy
+# ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn
+# rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe
+# T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb
+# SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg
+# xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL
+# 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5
+# 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q
+# t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+
+# KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf
+# 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV
+# EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
+# QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE
+# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
+# BDEWBBRPPBgBB7wuCgUqrgSi1vxcimIHNTBqBgorBgEEAYI3AgEMMVwwWqA4gDYA
+# TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA
+# ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B
+# AQEFAASCAQBenMDYWCypjNo7KD7IL5zARP5tKWNHysnzREuFh7fBxnWaXirXW0J5
+# p5pHeRWLHWpTmoJDDPwMxvU06tRxX5muqvPutA3dqQiAvPFiZrqdNuBq5miZQ6hZ
+# v+jYhPUU/kTJGiurUXAtw+ulKCibVGjW0TgO16r45kmyspqezItMjAyKofbBl+C6
+# w0++YCZr1vv/f8gvqlg85ifhALjL/bUlpy3N6FrTGDeFzf7q7QhO2NrSOFpArSqw
+# 0vOBJW79VZ8HbNUu4I/vAysFRyj8RbIu+xm8iaRDslXwJI2ka4wBot6Ucj+zaUEY
+# WWfNvZ8NlpK/bpeifwknly96CLIiWqn8oYICHTCCAhkGCSqGSIb3DQEJBjGCAgow
+# ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
+# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
+# ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUTNgAAAAAAGjAH
+# BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF
+# MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFDSgrQ2+3zPn3zAO84uf
+# puLOI65jMA0GCSqGSIb3DQEBBQUABIIBAALljW1tyymODshEY9FwmnTFDbeqeeQw
+# YtspreF6jFWbILCt5TrUi3uW26NXGGmOu3U7Gsq30lCRX/k3wG2+/1NFtrScRz5n
+# Bdo2W8MWXqdRekK3gOAr0IuASfzOEFeBPFWuACGy6uiAb7hKbx37y+rU9ML9y0r4
+# d0JH7dLGL3lyzlB8eFwaZPtlJG35iXXD3CjqD7o+/6UdhR/54iyz4CfbPdmWZc3Q
+# uQRGLtkQrk+GpUl/R64AVPGISeDQikpf6dnws+6u8qHKlF5Ql+40rU3MypkRJPfg
+# PlnrdJlksA3SwVmcJUcEh6MyE7wTbXQDeY0jzCT18OpnrAnukeGIWCg=
+# SIG # End signature block
diff --git a/packages/AspNetRazor.Core.2.0.20126.16343/tools/Uninstall.ps1 b/packages/AspNetRazor.Core.2.0.20126.16343/tools/Uninstall.ps1
new file mode 100644
index 0000000..e17f823
--- /dev/null
+++ b/packages/AspNetRazor.Core.2.0.20126.16343/tools/Uninstall.ps1
@@ -0,0 +1,174 @@
+param($installPath, $toolsPath, $package, $project)
+
+if ($project.Type -eq 'Web Site') {
+ Import-Module (Join-Path $toolsPath VS.psd1)
+
+ $projectRoot = Get-ProjectRoot $project
+ if (!$projectRoot) {
+ return;
+ }
+ $binDirectory = Join-Path $projectRoot "bin"
+ $srcDirectory = Join-Path $installPath "lib\net40\"
+ $fileSystem = Get-VsFileSystem
+
+ ls $srcDirectory -Filter *.dll | %{
+ $fileName = $_.Name
+ $fileInBin = Join-Path $binDirectory $fileName
+ if ($fileSystem.FileExists($fileInBin) -and ((Get-Item $fileInBin).Length -eq $_.Length)) {
+ # If a corresponding file exists in bin and has the exact file size as the one inside the package, it's most likely the same file.
+ try {
+ $fileSystem.DeleteFile($fileInBin)
+
+ } catch {
+ # We don't want an exception to surface if we can't delete the file
+ }
+ }
+ }
+}
+# SIG # Begin signature block
+# MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU5eFmkhW/FlQBz1yONQogDyby
+# xJGgghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5
+# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
+# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
+# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy
+# MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
+# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
+# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
+# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5
+# z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6
+# ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN
+# KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA
+# dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb
+# cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH
+# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm
+# 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF
+# dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
+# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
+# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
+# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP
+# mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v
+# fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX
+# 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8
+# Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA
+# XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC
+# A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
+# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
+# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
+# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
+# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD
+# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
+# AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R
+# sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS
+# 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK
+# f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ
+# CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl
+# MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw
+# HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS
+# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
+# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
+# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
+# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
+# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v
+# 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622
+# XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5
+# /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi
+# vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG
+# KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR
+# ARYRYopBdqAwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA
+# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
+# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+# eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT
+# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
+# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l
+# LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf
+# 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc
+# MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP
+# CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36
+# ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E
+# 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB
+# ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+# BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3
+# FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw
+# XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m
+# dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+# ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0
+# LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj
+# cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud
+# JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13
+# 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd
+# AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw
+# +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2
+# MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl
+# XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0
+# BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz
+# sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv
+# pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f
+# UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH
+# E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F
+# W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ
+# KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk
+# ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh
+# dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj
+# cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+# ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF
+# +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9
+# cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE
+# UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG
+# 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis
+# NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3
+# FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD
+# AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8
+# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is
+# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj
+# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB
+# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy
+# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho
+# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD
+# ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe
+# TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA
+# bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF
+# BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy
+# ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn
+# rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe
+# T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb
+# SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg
+# xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL
+# 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5
+# 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q
+# t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+
+# KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf
+# 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV
+# EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
+# QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE
+# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
+# BDEWBBRx+YgRrX5dASbxCVCxyd7ne/BLVDBqBgorBgEEAYI3AgEMMVwwWqA4gDYA
+# TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA
+# ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B
+# AQEFAASCAQAwsAzaCdBDpwei518RWEy+vbAGwNcMOB1ZOLEijtZSyarlaha5pjhb
+# pjrCDVpmEauR+LmF9101ej/27DeLVdXQ4I3+MmW9AB75IZ50/CJjiMfRgDEGWau0
+# NTKKA62iOY7Bu0hLN5cYeJnFSc8XE9ehq5MvwpNZZkXh39MqKl/CsFy+prWQp1/x
+# GiTYkZnM6jL9GpfHQBX8NXqlUTeENJBH8KpDd9fpFvmRDi084xJU28O98uWOnQPn
+# ndze19YIRcFq0Xs3DWARlawYTQdVp+/ud05tFI2LAb27ExK892tuq47ffVjQDta0
+# f6JA80pQ9iP6yUk/awhiMqKFxpdWUnK5oYICHTCCAhkGCSqGSIb3DQEJBjGCAgow
+# ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
+# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
+# ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUZlgAAAAAAGzAH
+# BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF
+# MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFG8OGHFrod8cqU9j8yCh
+# dVpgbfV9MA0GCSqGSIb3DQEBBQUABIIBAEl95dVnVN+61kqnMy6QKVQ483Zx3w3i
+# RB0gWZXbMfWzO4kfyoFzww4OHXvx/8ilGPbKLFUnL7Xf3I7kCrJbG4H2ibUh6ZmT
+# 7B4X4QGCa0FWiEyuEkzwYaFo3FR0tfUk2z3TBsqmKLoSSV2xbMg/zBCbpU47g3uh
+# pRpD5Mf6KlStl+ZOOaMVX58Hkea2aSb77oFBYh9DaENOMGLGWC21TLWEI4tnjB7v
+# tzVwFQrbFjXUuIlkjw/2y9D1YpgzzA8p4rdjm6gXXlqeNc7TL0jpfrH0HU77AwPs
+# AS/AhHbXuf3wh/1mABJpArpIKV4wTMx2dPer1BNeQy/OCUMOOaaJ6ig=
+# SIG # End signature block
diff --git a/packages/AspNetRazor.Core.2.0.20126.16343/tools/VS.psd1 b/packages/AspNetRazor.Core.2.0.20126.16343/tools/VS.psd1
new file mode 100644
index 0000000..a3e0ce5
--- /dev/null
+++ b/packages/AspNetRazor.Core.2.0.20126.16343/tools/VS.psd1
@@ -0,0 +1,225 @@
+@{
+
+# Script module or binary module file associated with this manifest
+ModuleToProcess = 'VS.psm1'
+
+# Version number of this module.
+ModuleVersion = '0.1'
+
+# ID used to uniquely identify this module
+GUID = 'a9610a6b-5f18-4859-b4ed-c0b61b356f35'
+
+# Author of this module
+Author = 'Microsoft Corporation'
+
+# Company or vendor of this module
+CompanyName = 'Microsoft Corporation'
+
+# Copyright statement for this module
+Copyright = '(c) 2011 Microsoft Corporation. All rights reserved.'
+
+# Description of the functionality provided by this module
+Description = 'Powershell wrapper for NuGet.VisualStudio'
+
+# Minimum version of the Windows PowerShell engine required by this module
+PowerShellVersion = '2.0'
+
+# Name of the Windows PowerShell host required by this module
+PowerShellHostName = 'Package Manager Host'
+
+# Minimum version of the Windows PowerShell host required by this module
+PowerShellHostVersion = '1.2'
+
+# Minimum version of the .NET Framework required by this module
+DotNetFrameworkVersion = '4.0'
+
+# Minimum version of the common language runtime (CLR) required by this module
+CLRVersion = ''
+
+# Processor architecture (None, X86, Amd64, IA64) required by this module
+ProcessorArchitecture = ''
+
+# Modules that must be imported into the global environment prior to importing this module
+RequiredModules = @()
+
+# Assemblies that must be loaded prior to importing this module
+RequiredAssemblies = @()
+
+# Script files (.ps1) that are run in the caller's environment prior to importing this module
+ScriptsToProcess = @()
+
+# Type files (.ps1xml) to be loaded when importing this module
+TypesToProcess = @()
+
+# Format files (.ps1xml) to be loaded when importing this module
+FormatsToProcess = @()
+
+# Modules to import as nested modules of the module specified in ModuleToProcess
+NestedModules = @('VS.psm1')
+
+# Functions to export from this module
+FunctionsToExport = '*'
+
+# Cmdlets to export from this module
+CmdletsToExport = ''
+
+# Variables to export from this module
+VariablesToExport = ''
+
+# Aliases to export from this module
+AliasesToExport = ''
+
+# List of all files packaged with this module
+FileList = @()
+
+# Private data to pass to the module specified in ModuleToProcess
+PrivateData = ''
+
+}
+# SIG # Begin signature block
+# MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUhSWDsTDjCpf84MGVMRg7ZaTN
+# 54mgghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5
+# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
+# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
+# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy
+# MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
+# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
+# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
+# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5
+# z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6
+# ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN
+# KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA
+# dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb
+# cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH
+# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm
+# 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF
+# dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
+# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
+# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
+# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP
+# mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v
+# fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX
+# 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8
+# Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA
+# XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC
+# A6KgAwIBAgIKYQUTNgAAAAAAGjANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
+# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
+# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
+# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE3WhcNMTIxMDI1MjA0MjE3WjCBszEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
+# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjE1OUMtQTNGNy0yNTcwMSUwIwYD
+# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
+# AQEFAAOCAQ8AMIIBCgKCAQEAnDSYGckJKWOZAhZ1qIhXfaG7qUES/GSRpdYFeL93
+# 3OzmrrhQTsDjGr3tt/34IIpxOapyknKfignlE++RQe1hJWtRre6oQ7VhQiyd8h2x
+# 0vy39Xujc3YTsyuj25RhgFWhD23d2OwW/4V/lp6IfwAujnokumidj8bK9JB5euGb
+# 7wZdfvguw2oVnDwUL+fVlMgiG1HLqVWGIbda80ESOZ/wValOqiUrY/uRcjwPfMCW
+# ctzBo8EIyt7FybXACl+lnAuqcgpdCkB9LpjQq7KIj4aA6H3RvlVr4FgsyDY/+eYR
+# w/BDBYV4AxflLKcpfNPilRcAbNvcrTwZOgLgfWLUzvYdPQIDAQABo4IBCTCCAQUw
+# HQYDVR0OBBYEFPaDiyCHEe6Dy9vehaLSaIY3YXSQMB8GA1UdIwQYMBaAFCM0+NlS
+# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
+# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
+# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
+# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
+# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAGL0BQ1P5xtr
+# gudSDN95jKhVgTOX06TKyf6vSNt72m96KE/H0LeJ2NGmmcyRVgA7OOi3Mi/u+c9r
+# 2Zje1gL1QlhSa47aQNwWoLPUvyYVy0hCzNP9tPrkRIlmD0IOXvcEnyNIW7SJQcTa
+# bPg29D/CHhXfmEwAxLLs3l8BAUOcuELWIsiTmp7JpRhn/EeEHpFdm/J297GOch2A
+# djw2EUbKfjpI86/jSfYXM427AGOCnFejVqfDbpCjPpW3/GTRXRjCCwFQY6f889GA
+# noTjMjTdV5VAo21+2usuWgi0EAZeMskJ6TKCcRan+savZpiJ+dmetV8QI6N3gPJN
+# 1igAclCFvOUwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA
+# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
+# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+# eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT
+# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
+# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l
+# LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf
+# 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc
+# MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP
+# CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36
+# ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E
+# 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB
+# ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+# BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3
+# FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw
+# XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m
+# dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+# ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0
+# LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj
+# cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud
+# JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13
+# 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd
+# AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw
+# +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2
+# MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl
+# XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0
+# BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz
+# sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv
+# pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f
+# UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH
+# E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F
+# W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ
+# KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk
+# ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh
+# dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj
+# cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+# ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF
+# +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9
+# cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE
+# UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG
+# 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis
+# NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3
+# FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD
+# AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8
+# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is
+# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj
+# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB
+# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy
+# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho
+# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD
+# ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe
+# TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA
+# bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF
+# BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy
+# ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn
+# rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe
+# T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb
+# SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg
+# xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL
+# 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5
+# 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q
+# t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+
+# KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf
+# 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV
+# EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
+# QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE
+# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
+# BDEWBBQ/h+p82rMdy7PbO1bTNehunSLFiDBqBgorBgEEAYI3AgEMMVwwWqA4gDYA
+# TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA
+# ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B
+# AQEFAASCAQBCU3llm0n8p/Gfo247NTbxTxcz0XXel/GjLShxM4hatGZyz5eGZszW
+# WLT+UlifzLzU8H37SZaafTdiysB24O2Fub14g8ygv62IDNL4QjEiNSxAFq67tdzT
+# FQtClLlxRgnrcJood9NZCooAlGae1fS8EHgf2kE6d1KR/NYkQyZrAmUGyZ36YwD8
+# gMwqyLc7SnWIzv7pepJBSPvQyNYEKrX/9vnTOTYXo/Tjj32TxGWYN56551UaMtQP
+# ZrZS34yJLv1frZBGJEK3F5pw5MSPbaIvR1O0de7XjTlG2Z+T6hasG3zVCQi9ByW3
+# iavcbiEh8t0z1IaybtgExWgzer3oGSRSoYICHTCCAhkGCSqGSIb3DQEJBjGCAgow
+# ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
+# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
+# ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUTNgAAAAAAGjAH
+# BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF
+# MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFKZpdn6FFa4AHuOurptD
+# Zd4WyMlRMA0GCSqGSIb3DQEBBQUABIIBAGa/G9k0yOCXe7mPIcEWWWDkI4Mlw8ox
+# hYkusQhogDFjHKPsuJSH0y98ryBWNhWby9jJGf/NrXCABpKHc6hlXb/7i4+HC3J+
+# 6ernYBUaIUEjV7NBcTQZ2aRvxHRiM/uS9sN0xvT/g4WpWwnIfso72D2hz1jK6tc0
+# Og1tw1i+X/Bw/HwVcSV8rXFOLAYglt75/+4bF900d1lTCmrfPZ9Ec+XHq7HQQiey
+# h7RDchb0V4cX/vqxNx37FL4/L+r/SYqEVBtIKYaXiidlVcm4SnSXY8ZTp7UOZEHA
+# VBW/+MYgEYmjAWL7m+a2upQ+k+vmHn0499hhWGz12zfsLEPIzWJ9QhQ=
+# SIG # End signature block
diff --git a/packages/AspNetRazor.Core.2.0.20126.16343/tools/VS.psm1 b/packages/AspNetRazor.Core.2.0.20126.16343/tools/VS.psm1
new file mode 100644
index 0000000..2f330d7
--- /dev/null
+++ b/packages/AspNetRazor.Core.2.0.20126.16343/tools/VS.psm1
@@ -0,0 +1,166 @@
+function Get-VsFileSystem {
+ $componentModel = Get-VSComponentModel
+ $fileSystemProvider = $componentModel.GetService([NuGet.VisualStudio.IFileSystemProvider])
+ $solutionManager = $componentModel.GetService([NuGet.VisualStudio.ISolutionManager])
+
+ $fileSystem = $fileSystemProvider.GetFileSystem($solutionManager.SolutionDirectory)
+
+ return $fileSystem
+}
+
+function Get-ProjectRoot($project) {
+ try {
+ $project.Properties.Item("FullPath").Value
+ } catch {
+
+ }
+}
+
+Export-ModuleMember *
+# SIG # Begin signature block
+# MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUjXEaZx7/tt/6noN5dH+MnQ7K
+# 82+gghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5
+# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
+# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
+# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy
+# MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
+# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
+# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
+# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5
+# z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6
+# ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN
+# KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA
+# dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb
+# cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH
+# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm
+# 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF
+# dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
+# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
+# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
+# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP
+# mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v
+# fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX
+# 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8
+# Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA
+# XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC
+# A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
+# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
+# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
+# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
+# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD
+# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
+# AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R
+# sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS
+# 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK
+# f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ
+# CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl
+# MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw
+# HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS
+# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
+# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
+# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
+# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
+# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v
+# 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622
+# XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5
+# /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi
+# vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG
+# KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR
+# ARYRYopBdqAwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA
+# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
+# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+# eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT
+# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
+# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l
+# LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf
+# 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc
+# MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP
+# CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36
+# ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E
+# 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB
+# ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+# BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3
+# FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw
+# XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m
+# dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+# ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0
+# LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj
+# cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud
+# JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13
+# 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd
+# AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw
+# +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2
+# MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl
+# XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0
+# BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz
+# sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv
+# pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f
+# UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH
+# E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F
+# W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ
+# KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk
+# ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh
+# dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj
+# cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+# ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF
+# +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9
+# cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE
+# UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG
+# 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis
+# NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3
+# FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD
+# AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8
+# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is
+# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj
+# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB
+# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy
+# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho
+# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD
+# ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe
+# TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA
+# bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF
+# BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy
+# ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn
+# rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe
+# T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb
+# SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg
+# xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL
+# 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5
+# 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q
+# t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+
+# KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf
+# 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV
+# EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
+# QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE
+# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
+# BDEWBBS5D8CFNM/aE6c8XOM5Hh0+N422ITBqBgorBgEEAYI3AgEMMVwwWqA4gDYA
+# TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA
+# ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B
+# AQEFAASCAQAOnCgt85o0rg9FynTO++5HSg2WvHyB2nNfMOH60O09cMLGfvnh0Bgq
+# ft43lFD/8FaWeJq2zN/gPK1qFQbHZ2y4rCvMeBmgaPZm/u/srXUHU10GcBqjvScM
+# MX0h94fRX7mDkb1XLlPwm0QQZvOvebUzbsMIhA6OUahAMDTiR/7ZwDy23l7oO9u/
+# 7ZZRkbWpJr13AJ7cJc3iSvEpUJfxdbcxuUR3pakqWCQ7fX1chXuKw/f3NgSWe/un
+# jpXDDXWpurjpqKKj3CFf1gIvd0ag1yfxletiEAuEFlcgyuPEaTKDkHbab6CROdfT
+# a9YOC3fmp6lJEXRldTkWXs/XGoV9IZoDoYICHTCCAhkGCSqGSIb3DQEJBjGCAgow
+# ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
+# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
+# ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUZlgAAAAAAGzAH
+# BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF
+# MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFMD86sE3yf/lRFJLPdTR
+# mIzGknFjMA0GCSqGSIb3DQEBBQUABIIBAMSqWufi4zcg1wajaj5tSQugG1z3dhGA
+# hrU27USf9T49tR+HjpY/AY661PphIoozbo60sC7UYooBIJrelLfEFuWAF9LGNZ3M
+# uje2pI3eS3kajfLV9+UjrrSqa44MyYvi6cbiWagZ99ehcSboCLInB1HBrwiihpSM
+# VGfMdR/CpSub4m/vGE2Guo9ERA5cAu8k/P7/7u+YPIrUf6/IDglLplwmhAavTHY1
+# DL6GO3vQkmBio0XFVxqVegTnaU8WZTE4V1PgH7FV20MweCVxeDCyE6pY5Mu7ZULd
+# oBmomH8fas9OhqZpILWUf3eE9vv2A/rqxnuc3pKPJGX1bjVhVK7oIQE=
+# SIG # End signature block
diff --git a/packages/AspNetWebApi.4.0.20126.16343/AspNetWebApi.4.0.20126.16343.nupkg b/packages/AspNetWebApi.4.0.20126.16343/AspNetWebApi.4.0.20126.16343.nupkg
new file mode 100644
index 0000000..f6dc9c5
Binary files /dev/null and b/packages/AspNetWebApi.4.0.20126.16343/AspNetWebApi.4.0.20126.16343.nupkg differ
diff --git a/packages/AspNetWebApi.4.0.20126.16343/lib/net40/System.Web.Http.WebHost.dll b/packages/AspNetWebApi.4.0.20126.16343/lib/net40/System.Web.Http.WebHost.dll
new file mode 100644
index 0000000..6d0adee
Binary files /dev/null and b/packages/AspNetWebApi.4.0.20126.16343/lib/net40/System.Web.Http.WebHost.dll differ
diff --git a/packages/AspNetWebApi.4.0.20126.16343/lib/net40/System.Web.Http.WebHost.xml b/packages/AspNetWebApi.4.0.20126.16343/lib/net40/System.Web.Http.WebHost.xml
new file mode 100644
index 0000000..4245479
--- /dev/null
+++ b/packages/AspNetWebApi.4.0.20126.16343/lib/net40/System.Web.Http.WebHost.xml
@@ -0,0 +1,96 @@
+
+
+
+ System.Web.Http.WebHost
+
+
+
+ Provides a global for ASP applications.
+
+
+ Gets the global .
+
+
+ Extension methods for
+
+
+ Maps the specified route template and sets default constraints, and namespaces.
+ A reference to the mapped route.
+ A collection of routes for the application.
+ The name of the route to map.
+ The route template for the route.
+ An object that contains default route values.
+
+
+ Maps the specified route template and sets default route values, constraints, and namespaces.
+ A reference to the mapped route.
+ A collection of routes for the application.
+ The name of the route to map.
+ The route template for the route.
+ An object that contains default route values.
+ A set of expressions that specify values for routeTemplate.
+
+
+ A that passes ASP.NET requests into the pipeline and write the result back.
+
+
+ Initializes a new instance of the class.
+ The route data.
+
+
+ Begins the process request.
+ An that contains information about the status of the process.
+ The HTTP context base.
+ The callback.
+ The state.
+
+
+ Provides an asynchronous process End method when the process ends.
+ An that contains information about the status of the process.
+
+
+ Gets a value indicating whether another request can use the instance.
+
+
+ Processes the request.
+ The HTTP context base.
+
+
+ Begins processing the request.
+ An that contains information about the status of the process.
+ The HTTP context.
+ The callback.
+ The state.
+
+
+ Provides an asynchronous process End method when the process ends.
+ An that contains information about the status of the process.
+
+
+ Gets a value indicating whether another request can use the instance.
+
+
+ Processes the request.
+ The HTTP context base.
+
+
+ A that returns instances of that can pass requests to a given instance.
+
+
+ Initializes a new instance of the class.
+
+
+ Provides the object that processes the request.
+ An object that processes the request.
+ An object that encapsulates information about the request.
+
+
+ Gets the singleton instance.
+
+
+ Provides the object that processes the request.
+ An object that processes the request.
+ An object that encapsulates information about the request.
+
+
+
\ No newline at end of file
diff --git a/packages/AspNetWebApi.Core.4.0.20126.16343/AspNetWebApi.Core.4.0.20126.16343.nupkg b/packages/AspNetWebApi.Core.4.0.20126.16343/AspNetWebApi.Core.4.0.20126.16343.nupkg
new file mode 100644
index 0000000..72cdc59
Binary files /dev/null and b/packages/AspNetWebApi.Core.4.0.20126.16343/AspNetWebApi.Core.4.0.20126.16343.nupkg differ
diff --git a/packages/AspNetWebApi.Core.4.0.20126.16343/lib/net40/System.Web.Http.dll b/packages/AspNetWebApi.Core.4.0.20126.16343/lib/net40/System.Web.Http.dll
new file mode 100644
index 0000000..78ba52c
Binary files /dev/null and b/packages/AspNetWebApi.Core.4.0.20126.16343/lib/net40/System.Web.Http.dll differ
diff --git a/packages/AspNetWebApi.Core.4.0.20126.16343/lib/net40/System.Web.Http.xml b/packages/AspNetWebApi.Core.4.0.20126.16343/lib/net40/System.Web.Http.xml
new file mode 100644
index 0000000..94ec937
--- /dev/null
+++ b/packages/AspNetWebApi.Core.4.0.20126.16343/lib/net40/System.Web.Http.xml
@@ -0,0 +1,2015 @@
+
+
+
+ System.Web.Http
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Gets or sets {insert text here}.
+
+
+ Actions and controllers marked with this attribute are skipped by during authorization.
+
+
+ Initializes a new instance of the class.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the <see name="HttpConfiguration" /> of the current ApiController. The setter is not intended to be used other than for unit testing purpose.
+
+
+
+
+
+
+ Gets model state after the model binding process. This ModelState will be empty before model binding happens. Please do not populate this property other than for unit testing purpose.
+
+
+ Gets the <see name="HttpRequestMessage" /> of the current ApiController. The setter is not intended to be used other than for unit testing purpose.
+
+
+ An authorization filter that verifies the request's .
+
+
+ Initializes a new instance of the class.
+
+
+ Processes requests that fail authorization. This default implementation creates a new response with the Unauthorized status code. Override this method to provide your own handling for unauthorized requests.
+ The context.
+
+
+ Called when an action is being authorized. This method uses the user returned via . Authorization is denied if - the request is not associated with any user. - the user is not authenticated, - the user is authenticated but is not in the authorized group of (if defined), or if the user is not in any of the authorized (if defined). If authorization is denied then this method will invoke to process the unauthorized request.
+ The context.
+ The context parameter is null.
+
+
+ Gets or sets the authorized roles.
+ The roles string.
+
+
+ Gets a unique identifier for this .
+
+
+ Gets or sets the authorized users.
+ The users string.
+
+
+ This provides a centralized list of type-safe accessors describing where and how we use the dependency resolver.
+
+
+
+
+
+
+
+
+ Controller activator is used to instantiate an .
+ An instance or null if none are registered.
+
+
+ Get a controller factory, which instantiates a string name into an . This may be implemented by first getting the from the controller name, and then using a .
+
+
+ Gets a service.
+ An instance or null if none found.
+
+
+
+
+
+
+ Get ValueProviderFactories. The order of returned providers is the priority order that we search the factories.
+
+
+ Extension methods for <see cref="T:System.Collections.Generic.IDictionary`2" />.
+
+
+ Gets the value of <typeparamref name="T" /> associated with the specified key or throw an if either the key is not present or the value is not of type <typeparamref name="T" />.
+ The <see cref="T:System.Collections.Generic.IDictionary`2" /> instance where TValue is object.
+ The key whose value to get.
+
+
+
+ Gets the value of <typeparamref name="T" /> associated with the specified key or default value if either the key is not present or the value is not of type <typeparamref name="T" />.
+ true if key was found, value is non-null, and value is of type <typeparamref name="T" />; otherwise false.
+ The <see cref="T:System.Collections.Generic.IDictionary`2" /> instance where TValue is object.
+ The key whose value to get.
+ When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter.
+ The type of the value associated with the specified key.
+
+
+ This attribute is used on action parameters to indicate they come only from the content body of the incoming .
+
+
+ Initializes a new instance of the class.
+
+
+ This attribute is used on action parameters to indicate they come only from the of the incoming .
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Configuration of instances.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The to associate with this instance.
+
+
+
+
+ Gets the list of global filters.
+
+
+ Gets the media type formatters.
+
+
+ Gets or sets a value indicating whether error details should be included in error messages.
+
+
+ Gets an ordered list of instances to be invoked as an travels up the stack and an travels down in stack in return. The handlers are invoked in a bottom-up fashion in the incoming path and top-down in the outgoing path. That is, the last entry is called first for an incoming request message but invoked last for an outgoing response message.
+ The message handler collection.
+
+
+ Gets the properties associated with this instance.
+
+
+ Gets the associated with this instance.
+
+
+
+
+
+ Gets the used to resolve services to use by this .
+
+
+
+
+
+ Gets the root virtual path. The property always returns "/" as the first character of the returned value.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Provides extension methods for the class.
+
+
+ Gets the for the given request.
+ The .
+ The HTTP request.
+
+
+ Gets the for the given request or null if not available.
+ The or null.
+ The HTTP request.
+
+
+ Gets the for the given request or null if not available.
+ The or null.
+ The HTTP request.
+
+
+ Gets the for the given request or null if not available.
+ The or null.
+ The HTTP request.
+
+
+ An exception that allows for a given to be returned to the client.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The response message.
+
+
+ Initializes a new instance of the class.
+ The status code to use with the .
+
+
+ Initializes a new instance of the class.
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+
+
+ Initializes a new instance of the class.
+ The message that describes the error.
+
+
+ Initializes a new instance of the class.
+ The message that describes the error.
+ The exception that is the cause of the current exception, or a null reference if no inner exception is specified.
+
+
+ Initializes a new instance of the class.
+ The message that describes the error.
+ The status code to use with the .
+
+
+ Gets the to return to the client.
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class with a value of "/".
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+
+
+ Gets {insert text here}.
+
+
+
+
+
+
+
+
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+
+
+
+
+
+
+ Gets {insert text here}.
+
+
+ Extension methods for
+
+
+ Maps the specified route template and sets default constraints.
+ A reference to the mapped route.
+ A collection of routes for the application.
+ The name of the route to map.
+ The route template for the route.
+ An object that contains default route values.
+
+
+ Maps the specified route template and sets default route values and constraints.
+ A reference to the mapped route.
+ A collection of routes for the application.
+ The name of the route to map.
+ The route template for the route.
+ An object that contains default route values.
+ A set of expressions that specify values for routeTemplate.
+
+
+ Defines an implementation of an which dispatches an incoming and creates an as a result.
+
+
+ Initializes a new instance of the class with default configuration and dispatcher.
+
+
+ Initializes a new instance of the class with default dispatcher.
+ Http dispatcher responsible for handling incoming requests.
+
+
+ Initializes a new instance of the class with default dispatcher.
+ The used to configure this instance.
+
+
+ Initializes a new instance of the class.
+ The used to configure this instance.
+ Http dispatcher responsible for handling incoming requests.
+
+
+ Gets the .
+
+
+ Gets the dispatcher.
+
+
+ Releases unmanaged and - optionally - managed resources
+ true to release both managed and unmanaged resources; false to release only unmanaged SRResources.
+
+
+
+
+ Enum to indicate whether error details, such as exception messages and stack traces, should be included in error messages.
+
+
+ Only include error details when responding to a local request.
+
+
+ Always include error details.
+
+
+ Never include error details.
+
+
+
+ Initializes a new instance of the class.
+
+
+ This result filter indicates that the results returned from an action should be limited to the specified ResultLimit.
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Reflection based action selector. We optimize for the case where we have an instance per instance but can support cases where there are many instances for one as well. In the latter case the lookup is slightly slower because it goes through the dictionary.
+
+
+ Initializes a new instance of the class.
+
+
+
+ Contains information for the executing action.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Extension methods for .
+
+
+ Gets the for this .
+ The .
+ The execution context.
+ The binding context.
+
+
+ Gets the instance for a given .
+ An instance.
+ The context.
+
+
+ Gets the collection of registered instances.
+ A collection of instances.
+ The context.
+
+
+ Gets the collection of registered instances.
+ A collection of registered instances.
+ The context.
+ The metadata.
+
+
+ Gets the for this .
+ true if was present; otherwise false.
+ The action context.
+ The binding context.
+ When this method returns, the value associated with the specified binding context, if the context is found; otherwise, the default value for the type of the value parameter.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Executes the described action.
+ The return value of the action.
+ The context.
+ The arguments.
+
+
+
+
+
+ Returns the filters for the given configuration and action. The filter collection is ordered according to the FilterScope (in order from least specific to most specific: First, Global, Controller, Action). If a given filter disallows duplicates (AllowMultiple=False) then the most specific filter is maintained and less specific filters get removed (e.g. if there is a Authorize filter with a Controller scope and another one with an Action scope then the one with the Action scope will be maintained and the one with the Controller scope will be discarded).
+ A <see cref="T:System.Collections.ObjectModel.Collection`1" /> of all filters associated with this .
+
+
+
+
+ Gets the properties associated with this instance.
+
+
+ Gets {insert text here}.
+
+
+ Provides a mechanism for a implementation to indicate what kind of , , and to use for that controller. The types are first looked up in the and if not found there then created directly.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Contains information for a single HTTP operation.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets the HTTP controller.
+ The HTTP controller.
+
+
+ Gets or sets the controller descriptor.
+ The controller descriptor.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets the properties associated with this instance.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets the properties associated with this instance.
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets {insert text here}.
+
+
+
+
+
+
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets {insert text here}.
+
+
+
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Default implementation of an . A different implementation can be registered via the . We optimize for the case where we have an instance per instance but can support cases where there are many instances for one as well. In the latter case the lookup is slightly slower because it goes through the dictionary.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates the specified by controllerType using the given controllerContext
+ An instance of type controllerType.
+ The controller context.
+ Type of the controller.
+
+
+ Default instance creating new instances. A different implementation can be registered via the .
+
+
+ Initializes a new instance of the class.
+ The configuration.
+
+
+
+
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Dispatches an incoming to an implementation for processing.
+
+
+ Initializes a new instance of the class using default .
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the .
+
+
+ Releases unmanaged and - optionally - managed resources
+ true to release both managed and unmanaged resources; false to release only unmanaged SRResources.
+
+
+
+ Provides an abstraction for managing the compilation of an application. A different implementation can be registered via the .
+
+
+ Creates a cached file.
+ The object for the new file.
+ Name of the file.
+
+
+ Gets an object factory for the specified virtual path.
+ true if file exists; otherwise false.
+ The virtual path.
+
+
+ Compiles a file, given its virtual path, and returns the compiled type.
+ The compiled .
+ The virtual path.
+
+
+ Returns a list of assembly references that all page compilations must reference.
+ An of assembly references.
+
+
+ Reads a cached file.
+ The object for the file, or null if the file does not exist.
+ Name of the file.
+
+
+ Defines the methods that are required for an .
+
+
+
+ Defines the methods that are required for an factory.
+
+
+ Creates the using the specified context and controller name.
+ An instance.
+ The controller context.
+ Name of the controller.
+
+
+ Releases an instance.
+ The controller.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets {insert text here}.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Gets {insert text here}.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+
+
+
+
+
+ Gets {insert text here}.
+
+
+
+
+ Provides common keys for properties stored in the
+
+
+ Provides a key for the associated with this request.
+
+
+ Provides a key for the associated with this request.
+
+
+ Provides a key for the current stored in . If is null then no context is stored.
+
+
+ Provides a key for the current stored in .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+
+
+
+
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ This class associates a with its corresponding and necessary to perform model binding.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+
+ Asks how the request content should be read for the given .
+ A value indicating how the request content body should be read.
+ The for the action to be invoked.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Sets the type of the model binder. This type must be either a subclass of or any type with a parameterless constructor that implements /
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+
+
+
+
+ Gets {insert text here}.
+
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+
+
+
+
+
+
+ Gets {insert text here}.
+
+
+ Enum to indicate how the request body content should be (or was) read.
+
+
+ Do not read the request content.
+
+
+ Read the request content as key/value pairs.
+
+
+ Read the request content as a single object of a specific type.
+
+
+ Read the request content as key/value pairs if the formatter supports it, otherwise read as a single object.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ This class provides an that can bind to
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ This class is an that delegates to one of a collection of instances.
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+
+ Gets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+
+ Gets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ This class is an that validates the current model instance in the . It is meant to be used for model validation whenever the normal name/value model validation is not available.
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+ Route class for self-host (i.e. hosted outside of ASP.NET). This class is mostly the same as the System.Web.Routing.Route implementation. This class has the same URL matching functionality as System.Web.Routing.Route. However, in order for this route to match when generating URLs, a special "httproute" key must be specified when generating the URL.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+
+ Attempt to generate a URI that represents the values passed in based on current values from the and new values using the specified .
+ A instance or null if URI cannot be generated.
+ The HTTP execution context.
+ The route values.
+
+
+
+ Gets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ defines the interface for a route expressing how to map an incoming to a particular controller and action.
+
+
+ Gets the constraints for the route parameters.
+
+
+ Gets any additional data tokens not used directly to determine whether a route matches an incoming .
+
+
+ Gets the default values for route parameters if not provided by the incoming .
+
+
+ Determine whether this route is a match for the incoming request by looking up the <see cref="!:IRouteData" /> for the route.
+ The <see cref="!:RouteData" /> for a route if matches; otherwise null.
+ The virtual path root.
+ The request.
+
+
+ Compute a URI based on the route and the values provided.
+ The controller context.
+ The values.
+
+
+ Gets the route template describing the URI pattern to match against.
+
+
+
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+
+ Gets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+
+
+
+
+
+
+ Try to get a service of the given type.
+ an instance of the service, or null if the service is not found
+ Type of service to request.
+
+
+ Try to get a list of services of the given type.
+ an enumeration (possibly empty) of the service. Return an empty enumeration is the service is not found (don't return null)
+ Type of services to request.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+ Gets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Gets or sets {insert text here}.
+
+
+
+ An implementation of which providers validators for attributes which derive from . It also provides a validator for types which implement . To support client side validation, you can either register adapters through the static methods on this class, or by having your validation attributes implement . The logic to support IClientValidatable is implemented in .
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+
+
+
+ Registers the default adapter type for objects which implement . The adapter type must derive from and it must contain a public constructor which takes two parameters of types and .
+
+
+ Registers the default adapter factory for objects which implement .
+
+
+ Registers an adapter type for the given modelType, which must implement . The adapter type must derive from and it must contain a public constructor which takes two parameters of types and .
+
+
+ Registers an adapter factory for the given modelType, which must implement .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets {insert text here}.
+
+
+
+ Gets {insert text here}.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Gets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+
+
+
+ This attribute is used optionally to assign a prefix to an action parameter to be used during model binding.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the name to consider as the parameter name during model binding
+
+
+ This attribute is used to specify a custom .
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the type of the .
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets {insert text here}.
+
+
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets or sets {insert text here}.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ This class provides a facade over a instance.
+
+
+ Creates a new instance of the class.
+ The inner to use. It may be null.
+ The culture to use. It cannot be null.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
\ No newline at end of file
diff --git a/packages/AspNetWebPages.Core.2.0.20126.16343/AspNetWebPages.Core.2.0.20126.16343.nupkg b/packages/AspNetWebPages.Core.2.0.20126.16343/AspNetWebPages.Core.2.0.20126.16343.nupkg
new file mode 100644
index 0000000..185892f
Binary files /dev/null and b/packages/AspNetWebPages.Core.2.0.20126.16343/AspNetWebPages.Core.2.0.20126.16343.nupkg differ
diff --git a/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.Helpers.dll b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.Helpers.dll
new file mode 100644
index 0000000..a41bdcc
Binary files /dev/null and b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.Helpers.dll differ
diff --git a/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.Helpers.xml b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.Helpers.xml
new file mode 100644
index 0000000..1743a31
--- /dev/null
+++ b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.Helpers.xml
@@ -0,0 +1,812 @@
+
+
+
+ System.Web.Helpers
+
+
+
+ Displays data in the form of a graphical chart.
+
+
+ Initializes a new instance of the class.
+ The width, in pixels, of the complete chart image.
+ The height, in pixels, of the complete chart image.
+ (Optional) The template (theme) to apply to the chart.
+ (Optional) The template (theme) path and file name to apply to the chart.
+
+
+ Adds a legend to the chart.
+ The chart.
+ The text of the legend title.
+ The unique name of the legend.
+
+
+ Provides data points and series attributes for the chart.
+ The chart.
+ The unique name of the series.
+ The chart type of a series.
+ The name of the chart area that is used to plot the data series.
+ The axis label text for the series.
+ The name of the series that is associated with the legend.
+ The granularity of data point markers.
+ The values to plot along the x-axis.
+ The name of the field for x-values.
+ The values to plot along the y-axis.
+ A comma-separated list of name or names of the field or fields for y-values.
+
+
+ Adds a title to the chart.
+ The chart.
+ The title text.
+ The unique name of the title.
+
+
+ Binds a chart to a data table, where one series is created for each unique value in a column.
+ The chart.
+ The chart data source.
+ The name of the column that is used to group data into the series.
+ The name of the column for x-values.
+ A comma-separated list of names of the columns for y-values.
+ Other data point properties that can be bound.
+ The order in which the series will be sorted. The default is "Ascending".
+
+
+ Creates and binds series data to the specified data table, and optionally populates multiple x-values.
+ The chart.
+ The chart data source. This can be can be any object.
+ The name of the table column used for the series x-values.
+
+
+ Gets or sets the name of the file that contains the chart image.
+ The name of the file.
+
+
+ Returns a chart image as a byte array.
+ The chart.
+ The image format. The default is "jpeg".
+
+
+ Retrieves the specified chart from the cache.
+ The chart.
+ The ID of the cache item that contains the chart to retrieve. The key is set when you call the method.
+
+
+ Gets or sets the height, in pixels, of the chart image.
+ The chart height.
+
+
+ Saves a chart image to the specified file.
+ The chart.
+ The location and name of the image file.
+ The image file format, such as "png" or "jpeg".
+
+
+ Saves a chart in the system cache.
+ The ID of the cache item that contains the chart.
+ The ID of the chart in the cache.
+ The number of minutes to keep the chart image in the cache. The default is 20.
+ true to indicate that the chart cache item's expiration is reset each time the item is accessed, or false to indicate that the expiration is based on an absolute interval since the time that the item was added to the cache. The default is true.
+
+
+ Saves a chart as an XML file.
+ The chart.
+ The path and name of the XML file.
+
+
+ Sets values for the horizontal axis.
+ The chart.
+ The title of the x-axis.
+ The minimum value for the x-axis.
+ The maximum value for the x-axis.
+
+
+ Sets values for the vertical axis.
+ The chart.
+ The title of the y-axis.
+ The minimum value for the y-axis.
+ The maximum value for the y-axis.
+
+
+ Creates a object based on the current object.
+ The chart.
+ The format of the image to save the object as. The default is "jpeg". The parameter is not case sensitive.
+
+
+ Gets or set the width, in pixels, of the chart image.
+ The chart width.
+
+
+ Renders the output of the object as an image.
+ The chart.
+ The format of the image. The default is "jpeg".
+
+
+ Renders the output of a object that has been cached as an image.
+ The chart.
+ The ID of the chart in the cache.
+ The format of the image. The default is "jpeg".
+
+
+ Specifies visual themes for a object.
+
+
+ A theme for 2D charting that features a visual container with a blue gradient, rounded edges, drop-shadowing, and high-contrast gridlines.
+
+
+ A theme for 2D charting that features a visual container with a green gradient, rounded edges, drop-shadowing, and low-contrast gridlines.
+
+
+ A theme for 2D charting that features no visual container and no gridlines.
+
+
+ A theme for 3D charting that features no visual container, limited labeling and, sparse, high-contrast gridlines.
+
+
+ A theme for 2D charting that features a visual container that has a yellow gradient, rounded edges, drop-shadowing, and high-contrast gridlines.
+
+
+ Provides methods to generate hash values and encrypt passwords or other sensitive data.
+
+
+ Generates a cryptographically strong sequence of random byte values.
+ The generated salt value as a base-64-encoded string.
+ The number of cryptographically random bytes to generate.
+
+
+ Returns a hash value for the specified byte array.
+ The hash value for as a string of hexadecimal characters.
+ The data to provide a hash value for.
+ The algorithm that is used to generate the hash value. The default is "sha256".
+
+ is null.
+
+
+ Returns a hash value for the specified string.
+ The hash value for as a string of hexadecimal characters.
+ The data to provide a hash value for.
+ The algorithm that is used to generate the hash value. The default is "sha256".
+
+ is null.
+
+
+ Returns an RFC 2898 hash value for the specified password.
+ The hash value for as a base-64-encoded string.
+ The password to generate a hash value for.
+
+ is null.
+
+
+ Returns a SHA-1 hash value for the specified string.
+ The SHA-1 hash value for as a string of hexadecimal characters.
+ The data to provide a hash value for.
+
+ is null.
+
+
+ Returns a SHA-256 hash value for the specified string.
+ The SHA-256 hash value for as a string of hexadecimal characters.
+ The data to provide a hash value for.
+
+ is null.
+
+
+ Determines whether the specified RFC 2898 hash and password are a cryptographic match.
+ true if the hash value is a cryptographic match for the password; otherwise, false.
+ The previously-computed RFC 2898 hash value as a base-64-encoded string.
+ The plaintext password to cryptographically compare with .
+
+ or is null.
+
+
+ Represents a series of values as a JavaScript-like array by using the dynamic capabilities of the Dynamic Language Runtime (DLR).
+
+
+ Initializes a new instance of the class using the specified array element values.
+ An array of objects that contains the values to add to the instance.
+
+
+ Returns an enumerator that can be used to iterate through the elements of the instance.
+ An enumerator that can be used to iterate through the elements of the JSON array.
+
+
+ Returns the value at the specified index in the instance.
+ The value at the specified index.
+ The zero-based index of the value in the JSON array to return.
+
+
+ Returns the number of elements in the instance.
+ The number of elements in the JSON array.
+
+
+ Converts a instance to an array of objects.
+ The array of objects that represents the JSON array.
+ The JSON array to convert.
+
+
+ Converts a instance to an array of objects.
+ The array of objects that represents the JSON array.
+ The JSON array to convert.
+
+
+ Returns an enumerator that can be used to iterate through a collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Converts the instance to a compatible type.
+ true if the conversion was successful; otherwise, false.
+ Provides information about the conversion operation.
+ When this method returns, contains the result of the type conversion operation. This parameter is passed uninitialized.
+
+
+ Tests the instance for dynamic members (which are not supported) in a way that does not cause an exception to be thrown.
+ true in all cases.
+ Provides information about the get operation.
+ When this method returns, contains null. This parameter is passed uninitialized.
+
+
+ Represents a collection of values as a JavaScript-like object by using the capabilities of the Dynamic Language Runtime.
+
+
+ Initializes a new instance of the class using the specified field values.
+ A dictionary of property names and values to add to the instance as dynamic members.
+
+
+ Returns a list that contains the name of all dynamic members (JSON fields) of the instance.
+ A list that contains the name of every dynamic member (JSON field).
+
+
+ Converts the instance to a compatible type.
+ true in all cases.
+ Provides information about the conversion operation.
+ When this method returns, contains the result of the type conversion operation. This parameter is passed uninitialized.
+ The instance could not be converted to the specified type.
+
+
+ Gets the value of a field using the specified index.
+ true in all cases.
+ Provides information about the indexed get operation.
+ An array that contains a single object that indexes the field by name. The object must be convertible to a string that specifies the name of the JSON field to return. If multiple indexes are specified, contains null when this method returns.
+ When this method returns, contains the value of the indexed field, or null if the get operation was unsuccessful. This parameter is passed uninitialized.
+
+
+ Gets the value of a field using the specified name.
+ true in all cases.
+ Provides information about the get operation.
+ When this method returns, contains the value of the field, or null if the get operation was unsuccessful. This parameter is passed uninitialized.
+
+
+ Sets the value of a field using the specified index.
+ true in all cases.
+ Provides information about the indexed set operation.
+ An array that contains a single object that indexes the field by name. The object must be convertible to a string that specifies the name of the JSON field to return. If multiple indexes are specified, no field is changed or added.
+ The value to set the field to.
+
+
+ Sets the value of a field using the specified name.
+ true in all cases.
+ Provides information about the set operation.
+ The value to set the field to.
+
+
+ Provides methods for working with data in JavaScript Object Notation (JSON) format.
+
+
+ Converts data in JavaScript Object Notation (JSON) format into the specified strongly typed data list.
+ The JSON-encoded data converted to a strongly typed list.
+ The JSON-encoded string to convert.
+ The type of the strongly typed list to convert JSON data into.
+
+
+ Converts data in JavaScript Object Notation (JSON) format into a data object.
+ The JSON-encoded data converted to a data object.
+ The JSON-encoded string to convert.
+
+
+ Converts data in JavaScript Object Notation (JSON) format into a data object of a specified type.
+ The JSON-encoded data converted to the specified type.
+ The JSON-encoded string to convert.
+ The type that the data should be converted to.
+
+
+ Converts a data object to a string that is in the JavaScript Object Notation (JSON) format.
+ Returns a string of data converted to the JSON format.
+ The data object to convert.
+
+
+ Converts a data object to a string in JavaScript Object Notation (JSON) format and adds the string to the specified object.
+ The data object to convert.
+ The object that contains the converted JSON data.
+
+
+ Renders the property names and values of the specified object and of any subobjects that it references.
+
+
+ Renders the property names and values of the specified object and of any subobjects.
+ For a simple variable, returns the type and the value. For an object that contains multiple items, returns the property name or key and the value for each property.
+ The object to render information for.
+ Optional. Specifies the depth of nested subobjects to render information for. The default is 10.
+ Optional. Specifies the maximum number of characters that the method displays for object values. The default is 1000.
+
+ is less than zero.
+
+ is less than or equal to zero.
+
+
+ Displays information about the web server environment that hosts the current web page.
+
+
+ Displays information about the web server environment.
+ A string of name-value pairs that contains information about the web server.
+
+
+ Specifies the direction in which to sort a list of items.
+
+
+ Sort from smallest to largest —for example, from 1 to 10.
+
+
+ Sort from largest to smallest — for example, from 10 to 1.
+
+
+ Provides a cache to store frequently accessed data.
+
+
+ Retrieves the specified item from the object.
+ The item retrieved from the cache, or null if the item is not found.
+ The identifier for the cache item to retrieve.
+
+
+ Removes the specified item from the object.
+ The item removed from the object. If the item is not found, returns null.
+ The identifier for the cache item to remove.
+
+
+ Inserts an item into the object.
+ The identifier for the cache item.
+ The data to insert into the cache.
+ Optional. The number of minutes to keep an item in the cache. The default is 20.
+ Optional. true to indicate that the cache item expiration is reset each time the item is accessed, or false to indicate that the expiration is based the absolute time since the item was added to the cache. The default is true. In that case, if you also use the default value for the parameter, a cached item expires 20 minutes after it was last accessed.
+ The value of is less than or equal to zero.
+ Sliding expiration is enabled and the value of is greater than a year.
+
+
+ Displays data on a web page using an HTML table element.
+
+
+ Initializes a new instance of the class.
+ The data to display.
+ A collection that contains the names of the data columns to display. By default, this value is auto-populated according to the values in the parameter.
+ The name of the data column that is used to sort the grid by default.
+ The number of rows that are displayed on each page of the grid when paging is enabled. The default is 10.
+ true to specify that paging is enabled for the instance; otherwise false. The default is true.
+ true to specify that sorting is enabled for the instance; otherwise, false. The default is true.
+ The value of the HTML id attribute that is used to mark the HTML element that gets dynamic Ajax updates that are associated with the instance.
+ The name of the JavaScript function that is called after the HTML element specified by the property has been updated. If the name of a function is not provided, no function will be called. If the specified function does not exist, a JavaScript error will occur if it is invoked.
+ The prefix that is applied to all query-string fields that are associated with the instance. This value is used in order to support multiple instances on the same web page.
+ The name of the query-string field that is used to specify the current page of the instance.
+ The name of the query-string field that is used to specify the currently selected row of the instance.
+ The name of the query-string field that is used to specify the name of the data column that the instance is sorted by.
+ The name of the query-string field that is used to specify the direction in which the instance is sorted.
+
+
+ Gets the name of the JavaScript function to call after the HTML element that is associated with the instance has been updated in response to an Ajax update request.
+ The name of the function.
+
+
+ Gets the value of the HTML id attribute that marks an HTML element on the web page that gets dynamic Ajax updates that are associated with the instance.
+ The value of the id attribute.
+
+
+ Binds the specified data to the instance.
+ The bound and populated instance.
+ The data to display.
+ A collection that contains the names of the data columns to bind.
+ true to enable sorting and paging of the instance; otherwise, false.
+ The number of rows to display on each page of the grid.
+
+
+
+ Creates a new instance.
+ The new column.
+ The name of the data column to associate with the instance.
+ The text that is rendered in the header of the HTML table column that is associated with the instance.
+ The function that is used to format the data values that are associated with the instance.
+ A string that specifies the name of the CSS class that is used to style the HTML table cells that are associated with the instance.
+ true to enable sorting in the instance by the data values that are associated with the instance; otherwise, false. The default is true.
+
+
+ Gets a collection that contains the name of each data column that is bound to the instance.
+ The collection of data column names.
+
+
+ Returns an array that contains the specified instances.
+ An array of columns.
+ A variable number of column instances.
+
+
+ Gets the prefix that is applied to all query-string fields that are associated with the instance.
+ The query-string field prefix of the instance.
+
+
+ Returns a JavaScript statement that can be used to update the HTML element that is associated with the instance on the specified web page.
+ A JavaScript statement that can be used to update the HTML element in a web page that is associated with the instance.
+ The URL of the web page that contains the instance that is being updated. The URL can include query-string arguments.
+
+
+ Returns the HTML markup that is used to render the instance and using the specified paging options.
+ The HTML markup that represents the fully-populated instance.
+ The name of the CSS class that is used to style the whole table.
+ The name of the CSS class that is used to style the table header.
+ The name of the CSS class that is used to style the table footer.
+ The name of the CSS class that is used to style each table row.
+ The name of the CSS class that is used to style even-numbered table rows.
+ The name of the CSS class that is used to style the selected table row. (Only one row can be selected at a time.)
+ The table caption.
+ true to display the table header; otherwise, false. The default is true.
+ true to insert additional rows in the last page when there are insufficient data items to fill the last page; otherwise, false. The default is false. Additional rows are populated using the text specified by the parameter.
+ The text that is used to populate additional rows in a page when there are insufficient data items to fill the last page. The parameter must be set to true to display these additional rows.
+ A collection of instances that specify how each column is displayed. This includes which data column is associated with each grid column, and how to format the data values that each grid column contains.
+ A collection that contains the names of the data columns to exclude when the grid auto-populates columns.
+ A bitwise combination of the enumeration values that specify methods that are provided for moving between pages of the instance.
+ The text for the HTML link element that is used to link to the first page of the instance. The flag of the parameter must be set to display this page navigation element.
+ The text for the HTML link element that is used to link to previous page of the instance. The flag of the parameter must be set to display this page navigation element.
+ The text for the HTML link element that is used to link to the next page of the instance. The flag of the parameter must be set to display this page navigation element.
+ The text for the HTML link element that is used to link to the last page of the instance. The flag of the parameter must be set to display this page navigation element.
+ The number of numeric page links that are provided to nearby pages. The text of each numeric page link contains the page number. The flag of the parameter must be set to display these page navigation elements.
+ An object that represents a collection of attributes (names and values) to set for the HTML table element that represents the instance.
+
+
+ Returns a URL that can be used to display the specified data page of the instance.
+ A URL that can be used to display the specified data page of the grid.
+ The index of the page to display.
+
+
+ Returns a URL that can be used to sort the instance by the specified column.
+ A URL that can be used to sort the grid.
+ The name of the data column to sort by.
+
+
+ Gets a value that indicates whether a row in the instance is selected.
+ true if a row is currently selected; otherwise, false.
+
+
+
+ Gets the number of pages that the instance contains.
+ The page count.
+
+
+ Gets the full name of the query-string field that is used to specify the current page of the instance.
+ The full name of the query string field that is used to specify the current page of the grid.
+
+
+ Gets or sets the index of the current page of the instance.
+ The index of the current page.
+ The property cannot be set because paging is not enabled.
+
+
+ Returns the HTML markup that is used to provide the specified paging support for the instance.
+ The HTML markup that provides paging support for the grid.
+ A bitwise combination of the enumeration values that specify the methods that are provided for moving between the pages of the grid. The default is the bitwise OR of the and flags.
+ The text for the HTML link element that navigates to the first page of the grid.
+ The text for the HTML link element that navigates to the previous page of the grid.
+ The text for the HTML link element that navigates to the next page of the grid.
+ The text for the HTML link element that navigates to the last page of the grid.
+ The number of numeric page links to display. The default is 5.
+
+
+ Gets a list that contains the rows that are on the current page of the instance after the grid has been sorted.
+ The list of rows.
+
+
+ Gets the number of rows that are displayed on each page of the instance.
+ The number of rows that are displayed on each page of the grid.
+
+
+ Gets or sets the index of the selected row relative to the current page of the instance.
+ The index of the selected row relative to the current page.
+
+
+ Gets the currently selected row of the instance.
+ The currently selected row.
+
+
+ Gets the full name of the query-string field that is used to specify the selected row of the instance.
+ The full name of the query string field that is used to specify the selected row of the grid.
+
+
+ Gets or sets the name of the data column that the instance is sorted by.
+ The name of the data column that is used to sort the grid.
+
+
+ Gets or sets the direction in which the instance is sorted.
+ The sort direction.
+
+
+ Gets the full name of the query-string field that is used to specify the sort direction of the instance.
+ The full name of the query string field that is used to specify the sort direction of the grid.
+
+
+ Gets the full name of the query-string field that is used to specify the name of the data column that the instance is sorted by.
+ The full name of the query-string field that is used to specify the name of the data column that the grid is sorted by.
+
+
+ Returns the HTML markup that is used to render the instance.
+ The HTML markup that represents the fully-populated instance.
+ The name of the CSS class that is used to style the whole table.
+ The name of the CSS class that is used to style the table header.
+ The name of the CSS class that is used to style the table footer.
+ The name of the CSS class that is used to style each table row.
+ The name of the CSS class that is used to style even-numbered table rows.
+ The name of the CSS class that is used use to style the selected table row.
+ The table caption.
+ true to display the table header; otherwise, false. The default is true.
+ true to insert additional rows in the last page when there are insufficient data items to fill the last page; otherwise, false. The default is false. Additional rows are populated using the text specified by the parameter.
+ The text that is used to populate additional rows in the last page when there are insufficient data items to fill the last page. The parameter must be set to true to display these additional rows.
+ A collection of instances that specify how each column is displayed. This includes which data column is associated with each grid column, and how to format the data values that each grid column contains.
+ A collection that contains the names of the data columns to exclude when the grid auto-populates columns.
+ A function that returns the HTML markup that is used to render the table footer.
+ An object that represents a collection of attributes (names and values) to set for the HTML table element that represents the instance.
+
+
+ Gets the total number of rows that the instance contains.
+ The total number of rows in the grid. This value includes all rows from every page, but does not include the additional rows inserted in the last page when there are insufficient data items to fill the last page.
+
+
+ Represents a column in a instance.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a value that indicates whether the column can be sorted.
+ true to indicate that the column can be sorted; otherwise, false.
+
+
+ Gets or sets the name of the data item that is associated with the column.
+ The name of the data item.
+
+
+ Gets or sets a function that is used to format the data item that is associated with the column.
+ The function that is used to format that data item that is associated with the column.
+
+
+ Gets or sets the text that is rendered in the header of the column.
+ The text that is rendered to the column header.
+
+
+ Gets or sets the CSS class attribute that is rendered as part of the HTML table cells that are associated with the column.
+ The CSS class attribute that is applied to cells that are associated with the column.
+
+
+ Specifies flags that describe the methods that are provided for moving between the pages of a instance.
+
+
+ Indicates that methods for moving to a nearby page by using a page number are provided.
+
+
+ Indicates that methods for moving to the next or previous page are provided.
+
+
+ Indicates that methods for moving directly to the first or last page are provided.
+
+
+ Indicates that all methods for moving between pages are provided.
+
+
+ Represents a row in a instance.
+
+
+ Initializes a new instance of the class using the specified instance, row value, and index.
+ The instance that contains the row.
+ An object that contains a property member for each value in the row.
+ The index of the row.
+
+
+ Returns an enumerator that can be used to iterate through the values of the instance.
+ An enumerator that can be used to iterate through the values of the row.
+
+
+ Returns an HTML element (a link) that users can use to select the row.
+ The link that users can click to select the row.
+ The inner text of the link element. If is empty or null, "Select" is used.
+
+
+ Returns the URL that can be used to select the row.
+ The URL that is used to select a row.
+
+
+ Returns the value at the specified index in the instance.
+ The value at the specified index.
+ The zero-based index of the value in the row to return.
+
+ is less than 0 or greater than or equal to the number of values in the row.
+
+
+ Returns the value that has the specified name in the instance.
+ The specified value.
+ The name of the value in the row to return.
+
+ is null or empty.
+
+ specifies a value that does not exist.
+
+
+ Returns an enumerator that can be used to iterate through a collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Returns a string that represents all of the values of the instance.
+ A string that represents the row's values.
+
+
+ Returns the value of a member that is described by the specified binder.
+ true if the value of the item was successfully retrieved; otherwise, false.
+ The getter of the bound property member.
+ When this method returns, contains an object that holds the value of the item described by . This parameter is passed uninitialized.
+
+
+ Gets an object that contains a property member for each value in the row.
+ An object that contains each value in the row as a property.
+
+
+ Gets the instance that the row belongs to.
+ The instance that contains the row.
+
+
+ Represents an object that lets you display and manage images in a web page.
+
+
+ Initializes a new instance of the class using a byte array to represent the image.
+ The image.
+
+
+ Initializes a new instance of the class using a stream to represent the image.
+ The image.
+
+
+ Initializes a new instance of the class using a path to represent the image location.
+ The path of the file that contains the image.
+
+
+ Adds a watermark image using a path to the watermark image.
+ The watermarked image.
+ The path of a file that contains the watermark image.
+ The width, in pixels, of the watermark image.
+ The height, in pixels, of the watermark image.
+ The horizontal alignment for watermark image. Values can be "Left", "Right", or "Center".
+ The vertical alignment for the watermark image. Values can be "Top", "Middle", or "Bottom".
+ The opacity for the watermark image, specified as a value between 0 and 100.
+ The size, in pixels, of the padding around the watermark image.
+
+
+ Adds a watermark image using the specified image object.
+ The watermarked image.
+ A object.
+ The width, in pixels, of the watermark image.
+ The height, in pixels, of the watermark image.
+ The horizontal alignment for watermark image. Values can be "Left", "Right", or "Center".
+ The vertical alignment for the watermark image. Values can be "Top", "Middle", or "Bottom".
+ The opacity for the watermark image, specified as a value between 0 and 100.
+ The size, in pixels, of the padding around the watermark image.
+
+
+ Adds watermark text to the image.
+ The watermarked image.
+ The text to use as a watermark.
+ The color of the watermark text.
+ The font size of the watermark text.
+ The font style of the watermark text.
+ The font type of the watermark text.
+ The horizontal alignment for watermark text. Values can be "Left", "Right", or "Center".
+ The vertical alignment for the watermark text. Values can be "Top", "Middle", or "Bottom".
+ The opacity for the watermark image, specified as a value between 0 and 100.
+ The size, in pixels, of the padding around the watermark text.
+
+
+ Copies the object.
+ The image.
+
+
+ Crops an image.
+ The cropped image.
+ The number of pixels to remove from the top.
+ The number of pixels to remove from the left.
+ The number of pixels to remove from the bottom.
+ The number of pixels to remove from the right.
+
+
+ Gets or sets the file name of the object.
+ The file name.
+
+
+ Flips an image horizontally.
+ The flipped image.
+
+
+ Flips an image vertically.
+ The flipped image.
+
+
+ Returns the image as a byte array.
+ The image.
+ The value of the object.
+
+
+ Returns an image that has been uploaded using the browser.
+ The image.
+ (Optional) The name of the file that has been posted. If no file name is specified, the first file that was uploaded is returned.
+
+
+ Gets the height, in pixels, of the image.
+ The height.
+
+
+ Gets the format of the image (for example, "jpeg" or "png").
+ The file format of the image.
+
+
+ Resizes an image.
+ The resized image.
+ The width, in pixels, of the object.
+ The height, in pixels, of the object.
+ true to preserve the aspect ratio of the image; otherwise, false.
+ true to prevent the enlargement of the image; otherwise, false.
+
+
+ Rotates an image to the left.
+ The rotated image.
+
+
+ Rotates an image to the right.
+ The rotated image.
+
+
+ Saves the image using the specified file name.
+ The image.
+ The path to save the image to.
+ The format to use when the image file is saved, such as "gif", or "png".
+ true to force the correct file-name extension to be used for the format that is specified in ; otherwise, false. If there is a mismatch between the file type and the specified file-name extension, and if is true, the correct extension will be appended to the file name. For example, a PNG file named Photograph.txt is saved using the name Photograph.txt.png.
+
+
+ Gets the width, in pixels, of the image.
+ The width.
+
+
+ Renders an image to the browser.
+ The image.
+ (Optional) The file format to use when the image is written.
+
+
+ Provides a way to construct and send an email message using Simple Mail Transfer Protocol (SMTP).
+
+
+ Gets or sets a value that indicates whether Secure Sockets Layer (SSL) is used to encrypt the connection when an email message is sent.
+ true if SSL is used to encrypt the connection; otherwise, false.
+
+
+ Gets or sets the email address of the sender.
+ The email address of the sender.
+
+
+ Gets or sets the password of the sender's email account.
+ The sender's password.
+
+
+
+ Gets or sets the port that is used for SMTP transactions.
+ The port that is used for SMTP transactions.
+
+
+ Gets or sets the name of the SMTP server that is used to transmit the email message.
+ The SMTP server.
+
+
+ Gets or sets a value that indicates whether the default credentials are sent with the requests.
+ true if credentials are sent with the email message; otherwise, false.
+
+
+ Gets or sets the name of email account that is used to send email.
+ The name of the user account.
+
+
+
\ No newline at end of file
diff --git a/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.Deployment.dll b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.Deployment.dll
new file mode 100644
index 0000000..3b79f8f
Binary files /dev/null and b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.Deployment.dll differ
diff --git a/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.Deployment.xml b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.Deployment.xml
new file mode 100644
index 0000000..7650b2d
--- /dev/null
+++ b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.Deployment.xml
@@ -0,0 +1,53 @@
+
+
+
+ System.Web.WebPages.Deployment
+
+
+
+ Provides a registration point for pre-application start code for Web Pages deployment.
+
+
+ Registers pre-application start code for Web Pages deployment.
+
+
+ Provides methods to confirm the deployment of a Web Pages application.
+
+
+ Represents the prefix for files that are stored in the cache.
+
+
+ Returns the full path of the folder that contains ASP.NET Web Pages assemblies for the specified version.
+ The full path of the folder that contains ASP.NET Web Pages assemblies.
+ The version of the assemblies.
+
+ is null.
+ The registry key for the path cannot be found.-or-The path cannot be found.
+
+
+
+
+ Returns the version of ASP.NET Web Pages that is installed.
+ The version of ASP.NET Web Pages that is installed, or null if the version is undetermined.
+ The path of the root directory for the application.
+
+ is null or empty.
+
+
+
+
+ Returns a value that indicates whether the Web Pages application is enabled.
+ true if the Web Pages application is enabled; otherwise, false.
+ The path of the root directory for the application.
+
+ is null or empty.
+
+
+ Returns a value that indicates whether the Web Pages application is explicitly disabled.
+ true if the Web Pages application is explicitly disabled; otherwise, false.
+ The path of the root directory for the application.
+
+ is null or empty.
+
+
+
\ No newline at end of file
diff --git a/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.Razor.dll b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.Razor.dll
new file mode 100644
index 0000000..f9e71f8
Binary files /dev/null and b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.Razor.dll differ
diff --git a/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.Razor.xml b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.Razor.xml
new file mode 100644
index 0000000..5599441
--- /dev/null
+++ b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.Razor.xml
@@ -0,0 +1,206 @@
+
+
+
+ System.Web.WebPages.Razor
+
+
+
+
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ Provides configuration system support for the host configuration section.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the host factory.
+ The host factory.
+
+
+ Represents the name of the configuration section for a Razor host environment.
+
+
+ Provides configuration system support for the pages configuration section.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the collection of namespaces to add to Web Pages pages in the current application.
+ The collection of namespaces.
+
+
+ Gets or sets the name of the page base type class.
+ The name of the page base type class.
+
+
+ Represents the name of the configuration section for Razor pages.
+
+
+ Provides configuration system support for the system.web.webPages.razor configuration section.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents the name of the configuration section for Razor Web section. Contains the static, read-only string "system.web.webPages.razor".
+
+
+ Gets or sets the host value for system.web.webPages.razor section group.
+ The host value.
+
+
+ Gets or sets the value of the pages element for the system.web.webPages.razor section.
+ The pages element value.
+
+
+
\ No newline at end of file
diff --git a/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.dll b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.dll
new file mode 100644
index 0000000..d1a75a6
Binary files /dev/null and b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.dll differ
diff --git a/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.xml b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.xml
new file mode 100644
index 0000000..dff2e43
--- /dev/null
+++ b/packages/AspNetWebPages.Core.2.0.20126.16343/lib/net40/System.Web.WebPages.xml
@@ -0,0 +1,2374 @@
+
+
+
+ System.Web.WebPages
+
+
+
+ Helps prevent malicious scripts from submitting forged page requests.
+
+
+ Adds an authenticating token to a form to help protect against request forgery.
+ Returns a string that contains the encrypted token value in a hidden HTML field.
+ The current object is null.
+
+
+ Adds an authenticating token to a form to help protect against request forgery and lets callers specify authentication details.
+ Returns the encrypted token value in a hidden HTML field.
+ The HTTP context data for a request.
+ An optional string of random characters (such as Z*7g1&p4) that is used to add complexity to the encryption for extra safety. The default is null.
+ The domain of a web application that a request is submitted from.
+ The virtual root path of a web application that a request is submitted from.
+
+ is null.
+
+
+ Validates that input data from an HTML form field comes from the user who submitted the data.
+ The current value is null.
+ The HTTP cookie token that accompanies a valid request is missing-or-The form token is missing.-or-The form token value does not match the cookie token value.-or-The form token value does not match the cookie token value.
+
+
+ Validates that input data from an HTML form field comes from the user who submitted the data and lets callers specify additional validation details.
+ The HTTP context data for a request.
+ An optional string of random characters (such as Z*7g1&p4) that is used to decrypt an authentication token created by the class. The default is null.
+ The current value is null.
+ The HTTP cookie token that accompanies a valid request is missing.-or-The form token is missing.-or-The form token value does not match the cookie token value.-or-The form token value does not match the cookie token value.-or-The value supplied does not match the value that was used to create the form token.
+
+
+ Provides access to unvalidated form values in the object.
+
+
+ Gets a collection of unvalidated form values that were posted from the browser.
+ An unvalidated collection of form values.
+
+
+ Gets the specified unvalidated object from the collection of posted values in the object.
+ The specified member, or null if the specified item is not found.
+ The name of the collection member to get.
+
+
+ Gets a collection of unvalidated query-string values.
+ A collection of unvalidated query-string values.
+
+
+ Excludes fields of the Request object from being checked for potentially unsafe HTML markup and client script.
+
+
+ Returns a version of form values, cookies, and query-string variables without checking them first for HTML markup and client script.
+ An object that contains unvalidated versions of the form and query-string values.
+ The object that contains values to exclude from request validation.
+
+
+ Returns a value from the specified form field, cookie, or query-string variable without checking it first for HTML markup and client script.
+ A string that contains unvalidated text from the specified field, cookie, or query-string value.
+ The object that contains values to exclude from validation.
+ The name of the field to exclude from validation. can refer to a form field, to a cookie, or to the query-string variable.
+
+
+ Returns all values from the Request object (including form fields, cookies, and the query string) without checking them first for HTML markup and client script.
+ An object that contains unvalidated versions of the form, cookie, and query-string values.
+ The object that contains values to exclude from validation.
+
+
+ Returns the specified value from the Request object without checking it first for HTML markup and client script.
+ A string that contains unvalidated text from the specified field, cookie, or query-string value.
+ The object that contains values to exclude from validation.
+ The name of the field to exclude from validation. can refer to a form field, to a cookie, or to the query-string variable.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ Contains classes and properties that are used to create HTML elements. This class is used to write helpers, such as those found in the namespace.
+
+
+ Creates a new tag that has the specified tag name.
+ The tag name without the "<", "/", or ">" delimiters.
+
+ is null or empty.
+
+
+ Adds a CSS class to the list of CSS classes in the tag.
+ The CSS class to add.
+
+
+ Gets the collection of attributes.
+ The collection of attributes.
+
+
+ Replaces each invalid character in the tag ID with a valid HTML character.
+ The sanitized tag ID, or null if is null or empty, or if does not begin with a letter.
+ The ID that might contain characters to replace.
+
+
+ Replaces each invalid character in the tag ID with the specified replacement string.
+ The sanitized tag ID, or null if is null or empty, or if does not begin with a letter.
+ The ID that might contain characters to replace.
+ The replacement string.
+
+ is null.
+
+
+ Generates a sanitized ID attribute for the tag by using the specified name.
+ The name to use to generate an ID attribute.
+
+
+ Gets or sets a string that can be used to replace invalid HTML characters.
+ The string to use to replace invalid HTML characters.
+
+
+ Gets or sets the inner HTML value for the element.
+ The inner HTML value for the element.
+
+
+ Adds a new attribute to the tag.
+ The key for the attribute.
+ The value of the attribute.
+
+
+ Adds a new attribute or optionally replaces an existing attribute in the opening tag.
+ The key for the attribute.
+ The value of the attribute.
+ true to replace an existing attribute if an attribute exists that has the specified value, or false to leave the original attribute unchanged.
+
+
+ Adds new attributes to the tag.
+ The collection of attributes to add.
+ The type of the key object.
+ The type of the value object.
+
+
+ Adds new attributes or optionally replaces existing attributes in the tag.
+ The collection of attributes to add or replace.
+ For each attribute in , true to replace the attribute if an attribute already exists that has the same key, or false to leave the original attribute unchanged.
+ The type of the key object.
+ The type of the value object.
+
+
+ Sets the property of the element to an HTML-encoded version of the specified string.
+ The string to HTML-encode.
+
+
+ Gets the tag name for this tag.
+ The name.
+
+
+ Renders the element as a element.
+
+
+ Renders the HTML tag by using the specified render mode.
+ The rendered HTML tag.
+ The render mode.
+
+
+ Enumerates the modes that are available for rendering HTML tags.
+
+
+ Represents the mode for rendering normal text.
+
+
+ Represents the mode for rendering an opening tag (for example, <tag>).
+
+
+ Represents the mode for rendering a closing tag (for example, </tag>).
+
+
+ Represents the mode for rendering a self-closing tag (for example, <tag />).
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ Contains methods to register assemblies as application parts.
+
+
+ Initializes a new instance of the class by using the specified assembly and root virtual path.
+ The assembly.
+ The root virtual path.
+
+ is null or empty.
+
+
+ Resolves a path to the specified assembly or resource within an assembly by using the specified base virtual path and specified virtual path.
+ The path of the assembly or resource.
+ The assembly.
+ The base virtual path.
+ The virtual path.
+
+ is not registered.
+
+
+ Adds an assembly and all web pages within the assembly to the list of available application parts.
+ The application part.
+
+ is already registered.
+
+
+ Provides objects and methods that are used to execute and render ASP.NET Web Pages application start pages (_AppStart.cshtml or _AppStart.vbhtml files).
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the HTTP application object that references this application startup page.
+ The HTTP application object that references this application startup page.
+
+
+ The prefix that is applied to all keys that are added to the cache by the application start page.
+
+
+ Gets the object that represents context data that is associated with this page.
+ The current context data.
+
+
+
+ Gets the output from the application start page as an HTML-encoded string.
+ The output from the application start page as an HTML-encoded string.
+
+
+ Gets the text writer for the page.
+ The text writer for the page.
+
+
+ The path to the application start page.
+
+
+ Gets or sets the virtual path of the page.
+ The virtual path.
+
+
+ Writes the string representation of the specified object as an HTML-encoded string.
+ The object to encode and write.
+
+
+ Writes the specified object as an HTML-encoded string.
+ The helper result to encode and write.
+
+
+ Writes the specified object without HTML encoding.
+ The object to write.
+
+
+
+
+
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns .
+
+
+
+
+
+ Returns .
+
+
+
+
+
+ Returns .
+
+
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents a base class that is used when ASP.NET compiles a .cshtml or .vbhtml file that is in the App_Code folder.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the application-state data as a object that callers can use to create and access custom application-scoped properties.
+ The application-state data.
+
+
+ Gets a reference to global application-state data that can be shared across sessions and requests in an ASP.NET application.
+ The application-state data.
+
+
+
+
+ Gets the cache object for the current application domain.
+ The cache object.
+
+
+ Gets the object that is associated with a page.
+ The current context data.
+
+
+ Gets the current page for this helper page.
+ The current page.
+
+
+
+
+ Returns .
+
+
+ Builds an absolute URL from an application-relative URL by using the specified parameters.
+ The absolute URL.
+ The initial path to use in the URL.
+ Additional path information, such as folders and subfolders.
+
+
+ Gets the object that is associated with a page.
+ An object that supports rendering HTML form controls in a page.
+
+
+ Gets a value that indicates whether Ajax is being used during the request of the web page.
+ true if Ajax is being used during the request; otherwise, false.
+
+
+ Gets a value that indicates whether the HTTP data transfer method used by the client to request the web page is a POST operation.
+ true if the HTTP verb is "POST"; otherwise, false.
+
+
+ Gets the model that is associated with a page.
+ An object that represents a model that is associated with the view data for a page.
+
+
+ Gets the state data for the model that is associated with a page.
+ The state of the model.
+
+
+ Gets property-like access to page data that is shared between pages, layout pages, and partial pages.
+ An object that contains page data.
+
+
+ Gets and sets the HTTP context for the web page.
+ The HTTP context for the web page.
+
+
+ Gets array-like access to page data that is shared between pages, layout pages, and partial pages.
+ An object that provides array-like access to page data.
+
+
+ Gets the object for the current HTTP request.
+ An object that contains the HTTP values that were sent by a client during a web request.
+
+
+ Gets the object for the current HTTP response.
+ An object that contains the HTTP-response information from an ASP.NET operation.
+
+
+ Gets the object that provides methods that can be used as part of web-page processing.
+ The object.
+
+
+ Gets the object for the current HTTP request.
+ The object for the current HTTP request.
+
+
+ Gets data related to the URL path.
+ Data related to the URL path.
+
+
+ Gets a user value based on the HTTP context.
+ A user value based on the HTTP context.
+
+
+ Gets the virtual path of the page.
+ The virtual path.
+
+
+
+ Writes the specified object to the specified instance without HTML encoding.
+ The text writer.
+ The object to write.
+
+
+ Writes the specified object to the specified instance without HTML encoding.
+ The text writer.
+ The object to write.
+
+
+ Writes the specified object as an HTML-encoded string to the specified text writer.
+ The text writer.
+ The object to encode and write.
+
+
+ Writes the specified object as an HTML-encoded string to the specified text writer.
+ The text writer.
+ The helper result to encode and write.
+
+
+ Represents the result of a helper action as an HTML-encoded string.
+
+
+ Initializes a new instance of the class.
+ A function that takes a instance as its only parameter, and writes its result to the as an HTML-encoded string. The function does not have a return value.
+
+
+ Returns an HTML-encoded string that represents the helper result.
+ The HTML-encoded string that represents the result.
+
+
+ Returns an HTML-encoded string that represents the helper result.
+ The HTML-encoded string that represents the result.
+
+
+ Writes an HTML-encoded string that writes the helper result to the specified object.
+ The instance to write the result to.
+
+
+ Provides methods to extend the HTTP context.
+
+
+ Redirects to the root of the website if the host is not local.
+ The HTTP context of the HTTP request.
+ A local URL.
+
+
+ Adds a resource to the list of resources to dispose at the end of an HTTP request.
+ The HTTP context of the HTTP request.
+ The resource to dispose.
+
+ is null.
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Defines an interface to provide information about the currently executing file.
+
+
+ Gets the template information for the current web page.
+ The template information.
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Defines methods that are implemented by virtual path handler factories.
+
+
+ Creates a handler factory for the specified virtual path.
+ A handler factory for the specified virtual path.
+ The virtual path.
+
+
+ Determines whether the specified virtual path is associated with a handler factory.
+ true if a handler factory exists for the specified virtual path; otherwise, false.
+ The virtual path.
+
+
+ Defines methods to implement an executor class that can execute the code on a web page.
+
+
+ Executes the code on the specified web page.
+ true if the executor took over execution of the web page; otherwise, false.
+ The web page.
+
+
+ Represents a path attribute for a web page class.
+
+
+ Initializes a new instance of the class by using the specified virtual path.
+ The virtual path.
+
+
+ Gets the virtual path of the current web page.
+ The virtual path.
+
+
+ Provides a registration point for pre-application start code for web pages.
+
+
+ Registers pre-application start code for web pages.
+
+
+ Defines extension methods for the class.
+
+
+ Determines whether the specified URL references the local computer.
+ true if the specified URL references the local computer; otherwise, false.
+ The HTTP request object.
+ The URL to test.
+
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Defines extension methods for the base class.
+
+
+ Configures the cache policy of an HTTP response instance.
+ The HTTP response instance.
+ The length of time, in seconds, before items expire from the cache.
+ true to indicate that items expire from the cache on a sliding basis; false to indicate that items expire when they reach the predefined expiration time.
+ The list of all parameters that can be received by a GET or POST operation that affect caching.
+ The list of all HTTP headers that affect caching.
+ The list of all Content-Encoding headers that affect caching.
+ One of the enumeration values that specifies how items are cached.
+
+
+ Sets the HTTP status code of an HTTP response using the specified integer value.
+ The HTTP response instance.
+ The HTTP status code.
+
+
+ Sets the HTTP status code of an HTTP response using the specified HTTP status code enumeration value.
+ The HTTP response instance.
+ The HTTP status code
+
+
+ Writes a sequence of bytes that represent binary content of an unspecified type to the output stream of an HTTP response.
+ The HTTP response instance.
+ An array that contains the bytes to write.
+
+
+ Writes a sequence of bytes that represent binary content of the specified MIME type to the output stream of an HTTP response.
+ The receiving HTTP response instance.
+ An array that contains the bytes to write.
+ The MIME type of the binary content.
+
+
+ Provides a delegate that represents one or more methods that are called when a content section is written.
+
+
+ Provides methods and properties that are used to render start pages that use the Razor view engine.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the child page of the current start page.
+ The child page of the current start page.
+
+
+ Gets or sets the context of the page.
+ The context of the page.
+
+
+ Calls the methods that are used to execute the developer-written code in the _PageStart start page and in the page.
+
+
+
+ Returns the initialization page for the specified page.
+ The _AppStart page if the _AppStart page exists. If the _AppStart page cannot be found, returns the _PageStart page if a _PageStart page exists. If the _AppStart and _PageStart pages cannot be found, returns .
+ The page.
+ The file name of the page.
+ The collection of file-name extensions that can contain ASP.NET Razor syntax, such as "cshtml" and "vbhtml".
+ Either or are null.
+
+ is null or empty.
+
+
+ Gets or sets the path of the layout page for the page.
+ The path of the layout page for the page.
+
+
+ Gets property-like access to page data that is shared between pages, layout pages, and partial pages.
+ An object that contains page data.
+
+
+ Gets array-like access to page data that is shared between pages, layout pages, and partial pages.
+ An object that provides array-like access to page data.
+
+
+ Renders the page.
+ The HTML markup that represents the web page.
+ The path of the page to render.
+ Additional data that is used to render the page.
+
+
+ Executes the developer-written code in the page.
+
+
+ Writes the string representation of the specified object as an HTML-encoded string.
+ The object to encode and write.
+
+
+ Writes the string representation of the specified object as an HTML-encoded string.
+ The helper result to encode and write.
+
+
+ Writes the string representation of the specified object without HTML encoding.
+ The object to write.
+
+
+ Provides utility methods for converting string values to other data types.
+
+
+ Converts a string to a strongly typed value of the specified data type.
+ The converted value.
+ The value to convert.
+ The data type to convert to.
+
+
+ Converts a string to the specified data type and specifies a default value.
+ The converted value.
+ The value to convert.
+ The value to return if is null.
+ The data type to convert to.
+
+
+ Converts a string to a Boolean (true/false) value.
+ The converted value.
+ The value to convert.
+
+
+ Converts a string to a Boolean (true/false) value and specifies a default value.
+ The converted value.
+ The value to convert.
+ The value to return if is null or is an invalid value.
+
+
+ Converts a string to a value.
+ The converted value.
+ The value to convert.
+
+
+ Converts a string to a value and specifies a default value.
+ The converted value.
+ The value to convert.
+ The value to return if is null or is an invalid value. The default is the minimum time value on the system.
+
+
+ Converts a string to a number.
+ The converted value.
+ The value to convert.
+
+
+ Converts a string to a number and specifies a default value.
+ The converted value.
+ The value to convert.
+ The value to return if is null or invalid.
+
+
+ Converts a string to a number.
+ The converted value.
+ The value to convert.
+
+
+ Converts a string to a number and specifies a default value.
+ The converted value.
+ The value to convert.
+ The value to return if is null.
+
+
+ Converts a string to an integer.
+ The converted value.
+ The value to convert.
+
+
+ Converts a string to an integer and specifies a default value.
+ The converted value.
+ The value to convert.
+ The value to return if is null or is an invalid value.
+
+
+ Checks whether a string can be converted to the specified data type.
+ true if can be converted to the specified type; otherwise, false.
+ The value to test.
+ The data type to convert to.
+
+
+ Checks whether a string can be converted to the Boolean (true/false) type.
+ true if can be converted to the specified type; otherwise, false.
+ The string value to test.
+
+
+ Checks whether a string can be converted to the type.
+ true if can be converted to the specified type; otherwise, false.
+ The string value to test.
+
+
+ Checks whether a string can be converted to the type.
+ true if can be converted to the specified type; otherwise, false.
+ The string value to test.
+
+
+ Checks whether a string value is null or empty.
+ true if is null or is a zero-length string (""); otherwise, false.
+ The string value to test.
+
+
+ Checks whether a string can be converted to the type.
+ true if can be converted to the specified type; otherwise, false.
+ The string value to test.
+
+
+ Checks whether a string can be converted to an integer.
+ true if can be converted to the specified type; otherwise, false.
+ The string value to test.
+
+
+ Contains methods and properties that describe a file information template.
+
+
+ Initializes a new instance of the class by using the specified virtual path.
+ The virtual path.
+
+
+ Gets the virtual path of the web page.
+ The virtual path.
+
+
+ Represents a last-in-first-out (LIFO) collection of template files.
+
+
+ Returns the current template file from the specified HTTP context.
+ The template file, removed from the top of the stack.
+ The HTTP context that contains the stack that stores the template files.
+
+
+ Removes and returns the template file that is at the top of the stack in the specified HTTP context.
+ The template file, removed from the top of the stack.
+ The HTTP context that contains the stack that stores the template files.
+
+ is null.
+
+
+ Inserts a template file at the top of the stack in the specified HTTP context.
+ The HTTP context that contains the stack that stores the template files.
+ The template file to push onto the specified stack.
+
+ or are null.
+
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Contains methods that are used for managing virtual path factories.
+
+
+
+
+ Adds a virtual path factory to the list of virtual path factories.
+ The virtual path factory to add.
+
+
+ Represents an ASP.NET Razor page.
+
+
+ Called from a derived class to create a new instance that is based on the class.
+
+
+ Gets or sets the object that is associated with a page.
+ The current context data.
+
+
+ Executes the code in a set of dependent pages.
+
+
+ Gets the object that is associated with a page.
+ An object that can render HTML form controls in a page.
+
+
+ Initializes an object that inherits from the class.
+
+
+ Gets the model that is associated with a page.
+ An object that represents a model that is associated with the view data for a page.
+
+
+ Gets the state of the model that is associated with a page.
+ The state of the model.
+
+
+ Adds a class to a list of classes that handle page execution and that implement custom features for pages.
+ The class to add.
+
+
+
+
+ Serves as the base class for classes that represent an ASP.NET Razor page.
+
+
+ Initializes the class for use by an inherited class instance. This constructor can only be called by an inherited class.
+
+
+ When overridden in a derived class, configures the current web page based on the configuration of the parent web page.
+ The parent page from which to read configuration information.
+
+
+ Creates a new instance of the class by using the specified virtual path.
+ The new object.
+ The virtual path to use to create the instance.
+
+
+ Called by content pages to create named content sections.
+ The name of the section to create.
+ The type of action to take with the new section.
+
+
+ Executes the code in a set of dependent web pages.
+
+
+ Executes the code in a set of dependent web pages by using the specified parameters.
+ The context data for the page.
+ The writer to use to write the executed HTML.
+
+
+ Executes the code in a set of dependent web pages by using the specified context, writer, and start page.
+ The context data for the page.
+ The writer to use to write the executed HTML.
+ The page to start execution in the page hierarchy.
+
+
+
+ Initializes the current page.
+
+
+ Returns a value that indicates whether the specified section is defined in the page.
+ true if the specified section is defined in the page; otherwise, false.
+ The name of the section to search for.
+
+
+ Gets or sets the path of a layout page.
+ The path of the layout page.
+
+
+ Gets the current object for the page.
+ The object.
+
+
+ Gets the stack of objects for the current page context.
+ The objects.
+
+
+ Provides property-like access to page data that is shared between pages, layout pages, and partial pages.
+ An object that contains page data.
+
+
+ Provides array-like access to page data that is shared between pages, layout pages, and partial pages.
+ A dictionary that contains page data.
+
+
+ Returns and removes the context from the top of the instance.
+
+
+ Inserts the specified context at the top of the instance.
+ The page context to push onto the instance.
+ The writer for the page context.
+
+
+ In layout pages, renders the portion of a content page that is not within a named section.
+ The HTML content to render.
+
+
+ Renders the content of one page within another page.
+ The HTML content to render.
+ The path of the page to render.
+ (Optional) An array of data to pass to the page being rendered. In the rendered page, these parameters can be accessed by using the property.
+
+
+ In layout pages, renders the content of a named section.
+ The HTML content to render.
+ The section to render.
+ The section was already rendered.-or-The section was marked as required but was not found.
+
+
+ In layout pages, renders the content of a named section and specifies whether the section is required.
+ The HTML content to render.
+ The section to render.
+ true to specify that the section is required; otherwise, false.
+
+
+ Writes the specified object as an HTML-encoded string.
+ The object to encode and write.
+
+
+ Writes the specified object as an HTML-encoded string.
+ The helper result to encode and write.
+
+
+ Writes the specified object without HTML-encoding it first.
+ The object to write.
+
+
+ Contains data that is used by a object to reference details about the web application, the current HTTP request, the current execution context, and page-rendering data.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using the specified context, page, and model.
+ The HTTP request context data to associate with the page context.
+ The page data to share between pages, layout pages, and partial pages.
+ The model to associate with the view data.
+
+
+ Gets a reference to the current object that is associated with a page.
+ The current page context object.
+
+
+ Gets the model that is associated with a page.
+ An object that represents a model that is associated with the view data for a page.
+
+
+ Gets the object that is associated with a page.
+ The object that renders the page.
+
+
+ Gets the page data that is shared between pages, layout pages, and partial pages.
+ A dictionary that contains page data.
+
+
+ Provides objects and methods that are used to execute and render ASP.NET pages that include Razor syntax.
+
+
+ Initializes the class for use by an inherited class instance. This constructor can only be called by an inherited class.
+
+
+ Gets the application-state data as a object that callers can use to create and access custom application-scoped properties.
+ The application-state data.
+
+
+ Gets a reference to global application-state data that can be shared across sessions and requests in an ASP.NET application.
+ The application-state data.
+
+
+
+
+
+
+ When overridden in a derived class, gets or sets the object that is associated with a page.
+ The current context data.
+
+
+
+
+
+
+ Executes the server code in the current web page that is marked using Razor syntax.
+
+
+
+
+ Returns a normalized path from the specified path.
+ The normalized path.
+ The path to normalize.
+
+
+ Gets or sets the virtual path of the page.
+ The virtual path.
+
+
+
+ Writes the string representation of the specified object as an HTML-encoded string.
+ The object to encode and write.
+
+
+ Writes the specified object as an HTML-encoded string.
+ The helper result to encode and write.
+
+
+
+
+
+ Writes the specified object without HTML encoding.
+ The object to write.
+
+
+ Writes the specified object to the specified instance without HTML encoding.
+ The text writer.
+ The object to write.
+
+
+ Writes the specified object as an HTML-encoded string to the specified text writer.
+ The text writer.
+ The object to encode and write.
+
+
+ Writes the specified object as an HTML-encoded string to the specified text writer.
+ The text writer.
+ The helper result to encode and write.
+
+
+ Provides methods and properties that are used to process specific URL extensions.
+
+
+ Initializes a new instance of the class by using the specified web page.
+ The web page to process.
+
+ is null.
+
+
+ Creates a new handler object from the specified virtual path.
+ A object for the specified virtual path.
+ The virtual path to use to create the handler.
+
+
+ Gets or sets a value that indicates whether web page response headers are disabled.
+ true if web page response headers are disabled; otherwise, false.
+
+
+ Returns a list of file name extensions that the current instance can process.
+ A read-only list of file name extensions that are processed by the current instance.
+
+
+ Gets a value that indicates whether another request can use the instance.
+ true if the instance is reusable; otherwise, false.
+
+
+ Processes the web page by using the specified context.
+ The context to use when processing the web page.
+
+
+ Adds a file name extension to the list of extensions that are processed by the current instance.
+ The extension to add, without a leading period.
+
+
+ The HTML tag name (X-AspNetWebPages-Version) for the version of the ASP.NET Web Pages specification that is used by this web page.
+
+
+ Provides methods and properties that are used to render pages that use the Razor view engine.
+
+
+ Initializes a new instance of the class.
+
+
+ When overridden in a derived class, gets the cache object for the current application domain.
+ The cache object.
+
+
+ When overridden in a derived class, gets or sets the culture for the current thread.
+ The culture for the current thread.
+
+
+
+ When overridden in a derived class, calls the methods that are used to initialize the page.
+
+
+ When overridden in a derived class, get a value that indicates whether Ajax is being used during the request of the web page.
+ true if Ajax is being used during the request; otherwise, false.
+
+
+ When overridden in a derived class, returns a value that indicates whether the HTTP data transfer method used by the client to request the web page is a POST request.
+ true if the HTTP verb is "POST"; otherwise, false.
+
+
+ When overridden in a derived class, gets or sets the path of a layout page.
+ The path of a layout page.
+
+
+ When overridden in a derived class, provides property-like access to page data that is shared between pages, layout pages, and partial pages.
+ An object that contains page data.
+
+
+ When overridden in a derived class, gets the HTTP context for the web page.
+ The HTTP context for the web page.
+
+
+ When overridden in a derived class, provides array-like access to page data that is shared between pages, layout pages, and partial pages.
+ An object that provides array-like access to page data.
+
+
+
+ When overridden in a derived class, renders a web page.
+ The markup that represents the web page.
+ The path of the page to render.
+ Additional data that is used to render the page.
+
+
+ When overridden in a derived class, gets the object for the current HTTP request.
+ An object that contains the HTTP values sent by a client during a web request.
+
+
+ When overridden in a derived class, gets the object for the current HTTP response.
+ An object that contains the HTTP response information from an ASP.NET operation.
+
+
+ When overridden in a derived class, gets the object that provides methods that can be used as part of web-page processing.
+ The object.
+
+
+ When overridden in a derived class, gets the object for the current HTTP request.
+ Session data for the current request.
+
+
+ When overridden in a derived class, gets information about the currently executing file.
+ Information about the currently executing file.
+
+
+ When overridden in a derived class, gets or sets the current culture used by the Resource Manager to look up culture-specific resources at run time.
+ The current culture used by the Resource Manager.
+
+
+ When overridden in a derived class, gets data related to the URL path.
+ Data related to the URL path.
+
+
+ When overridden in a derived class, gets a user value based on the HTTP context.
+ A user value based on the HTTP context.
+
+
+ Provides support for rendering HTML form controls and performing form validation in a web page.
+
+
+ Returns an HTML-encoded string that represents the specified object by using a minimal encoding that is suitable only for HTML attributes that are enclosed in quotation marks.
+ An HTML-encoded string that represents the object.
+ The object to encode.
+
+
+ Returns an HTML-encoded string that represents the specified string by using a minimal encoding that is suitable only for HTML attributes that are enclosed in quotation marks.
+ An HTML-encoded string that represents the original string.
+ The string to encode
+
+
+ Returns an HTML check box control that has the specified name.
+ The HTML markup that represents the check box control.
+ The value to assign to the name attribute of the HTML control element.
+
+ is null or empty.
+
+
+ Returns an HTML check box control that has the specified name and default checked status.
+ The HTML markup that represents the check box control.
+ The value to assign to the name attribute of the HTML control element.
+ true to indicate that the checked attribute is set to checked; otherwise, false.
+
+ is null or empty.
+
+
+ Returns an HTML check box control that has the specified name, default checked status, and custom attributes defined by an attribute dictionary.
+ The HTML markup that represents the check box control.
+ The value to assign to the name attribute of the HTML control element.
+ true to indicate that the checked attribute is set to checked; otherwise, false.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML check box control that has the specified name, default checked status, and custom attributes defined by an attribute object.
+ The HTML markup that represents the check box control.
+ The value to assign to the name attribute of the HTML control element.
+ true to indicate that the checked attribute is set to checked; otherwise, false.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML check box control that has the specified name and custom attributes defined by an attribute dictionary.
+ The HTML markup that represents the check box control.
+ The value to assign to the name attribute of the HTML control element.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML check box control that has the specified name and custom attributes defined by an attribute object.
+ The HTML markup that represents the check box control.
+ The value to assign to the name attribute of the HTML control element.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML drop-down list control that has the specified name and that contains the specified list items.
+ The HTML markup that represents the drop-down list control.
+ The value to assign to the name attribute of the HTML select element.
+ A list of instances that are used to populate the list.
+
+ is null or empty.
+
+
+ Returns an HTML drop-down list control that has the specified name and custom attributes defined by an attribute dictionary, and that contains the specified list items.
+ The HTML markup that represents the drop-down list control.
+ The value to assign to the name attribute of the HTML select element.
+ A list of instances that are used to populate the list.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML drop-down list control that has the specified name and custom attributes defined by an attribute object, and that contains the specified list items.
+ The HTML markup that represents the drop-down list control.
+ The value to assign to the name attribute of the HTML select element.
+ A list of instances that are used to populate the list.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML drop-down list control that has the specified name, and that contains the specified list items and default item.
+ The HTML markup that represents the drop-down list control.
+ The value to assign to the name attribute of the HTML select element.
+ The text to display for the default option in the list.
+ A list of instances that are used to populate the list.
+
+ is null or empty.
+
+
+ Returns an HTML drop-down list control that has the specified name and custom attributes defined by an attribute dictionary, and that contains the specified list items and default item.
+ The HTML markup that represents the drop-down list control.
+ The value to assign to the name attribute of the HTML select element.
+ The text to display for the default option in the list.
+ A list of instances that are used to populate the list.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML drop-down list control that has the specified name and custom attributes defined by an attribute object, and that contains the specified list items and default item.
+ The HTML markup that represents the drop-down list control.
+ The value to assign to the name attribute of the HTML select element.
+ The text to display for the default option in the list.
+ A list of instances that are used to populate the list.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML drop-down list control that has the specified name, custom attributes defined by an attribute dictionary, and default selection, and that contains the specified list items and default item.
+ The HTML markup that represents the drop-down list control.
+ The value to assign to the name attribute of the HTML select element.
+ The text to display for the default option in the list.
+ A list of instances that are used to populate the list.
+ The value that specifies the item in the list that is selected by default. The selected item is the first item in the list whose value matches the parameter (or whose text matches, if there is no value.)
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML drop-down list control that has the specified name, custom attributes defined by an attribute object, and default selection, and that contains the specified list items and default item.
+ The HTML markup that represents the drop-down list control.
+ The value to assign to the name attribute of the HTML select element.
+ The text to display for the default option in the list.
+ A list of instances that are used to populate the list.
+ The value that specifies the item in the list that is selected by default. The item that is selected is the first item in the list that has a matching value, or that matches the items displayed text if the item has no value.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML-encoded string that represents the specified object by using a full encoding that is suitable for arbitrary HTML.
+ An HTML-encoded string that represents the object.
+ The object to encode.
+
+
+ Returns an HTML-encoded string that represents the specified string by using a full encoding that is suitable for arbitrary HTML.
+ An HTML-encoded string that represents the original string.
+ The string to encode.
+
+
+ Returns an HTML hidden control that has the specified name.
+ The HTML markup that represents the hidden control.
+ The value to assign to the name attribute of the HTML control element.
+
+ is null or empty.
+
+
+ Returns an HTML hidden control that has the specified name and value.
+ The HTML markup that represents the hidden control.
+ The value to assign to the name attribute of the HTML control element.
+ The value to assign to the value attribute of the element.
+
+ is null or empty.
+
+
+ Returns an HTML hidden control that has the specified name, value, and custom attributes defined by an attribute dictionary.
+ The HTML markup that represents the hidden control.
+ The value to assign to the name attribute of the HTML control element.
+ The value to assign to the value attribute of the element.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML hidden control that has the specified name, value, and custom attributes defined by an attribute object.
+ The HTML markup that represents the hidden control.
+ The value to assign to the name attribute of the HTML control element.
+ The value to assign to the value attribute of the element.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Gets or sets the character that is used to replace the dot (.) in the id attribute of rendered form controls.
+ The character that is used to replace the dot in the id attribute of rendered form controls. The default is an underscore (_).
+
+
+ Returns an HTML label that displays the specified text.
+ The HTML markup that represents the label.
+ The text to display.
+
+ is null or empty.
+
+
+ Returns an HTML label that displays the specified text and that has the specified custom attributes.
+ The HTML markup that represents the label.
+ The text to display.
+
+ is null or empty.
+
+
+ Returns an HTML label that displays the specified text and that has the specified for attribute.
+ The HTML markup that represents the label.
+ The text to display.
+ The value to assign to the for attribute of the HTML control element.
+
+ is null or empty.
+
+
+ Returns an HTML label that displays the specified text, and that has the specified for attribute and custom attributes defined by an attribute dictionary.
+ The HTML markup that represents the label.
+ The text to display.
+ The value to assign to the for attribute of the HTML control element.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML label that displays the specified text, and that has the specified for attribute and custom attributes defined by an attribute object.
+ The HTML markup that represents the label.
+ The text to display.
+ The value to assign to the for attribute of the HTML control element.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML list box control that has the specified name and that contains the specified list items.
+ The HTML markup that represents the list box control.
+ The value to assign to the name attribute of the HTML select element.
+ A list of instances that are used to populate the list.
+
+ is null or empty.
+
+
+ Returns an HTML list box control that has the specified name and custom attributes defined by an attribute dictionary, and that contains the specified list items.
+ The HTML markup that represents the list box control.
+ The value to assign to the name attribute of the HTML select element.
+ A list of instances that are used to populate the list.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML list box control that has the specified name and custom attributes defined by an attribute object, and that contains the specified list items.
+ The HTML markup that represents the list box control.
+ The value to assign to the name attribute of the HTML select element.
+ A list of instances that are used to populate the list.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML list box control that has the specified name, size, list items, and default selections, and that specifies whether multiple selections are enabled.
+ The HTML markup that represents the list box control.
+ The value to assign to the name attribute of the HTML select element.
+ A list of instances that are used to populate the list.
+ An object that specifies the items in the list that are selected by default. The selections are retrieved through reflection by examining the properties of the object.
+ The value to assign to the size attribute of the element.
+ true to indicate that the multiple selections are enabled; otherwise, false.
+
+ is null or empty.
+
+
+ Returns an HTML list box control that has the specified name, and that contains the specified list items and default item.
+ The HTML markup that represents the list box control.
+ The value to assign to the name attribute of the HTML select element.
+ The text to display for the default option in the list.
+ A list of instances that are used to populate the list box.
+
+ is null or empty.
+
+
+ Returns an HTML list box control that has the specified name and custom attributes defined by an attribute dictionary, and that contains the specified list items and default item.
+ The HTML markup that represents the list box control.
+ The value to assign to the name attribute of the HTML select element.
+ The text to display for the default option in the list.
+ A list of instances that are used to populate the list.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML list box control that has the specified name and custom attributes defined by an attribute object, and that contains the specified list items and default item.
+ The HTML markup that represents the list box control.
+ The value to assign to the name attribute of the HTML select element.
+ The text to display for the default option in the list.
+ A list of instances that are used to populate the list box.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML list box control that has the specified name and custom attributes defined by an attribute dictionary, and that contains the specified list items, default item, and selections.
+ The HTML markup that represents the list box control.
+ The value to assign to the name attribute of the HTML select element.
+ The text to display for the default option in the list.
+ A list of instances that are used to populate the list.
+ An object that specifies the items in the list that are selected by default. The selections are retrieved through reflection by examining the properties of the object.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML list box control that has the specified name, size, items, default item, and selections, and that specifies whether multiple selections are enabled.
+ The HTML markup that represents the list box control.
+ The value to assign to the name attribute of the HTML select element.
+ The text to display for the default option in the list.
+ A list of instances that are used to populate the list.
+ An object that specifies the items in the list that are selected by default. The selections are retrieved through reflection by examining the properties of the object.
+ The value to assign to the size attribute of the element.
+ true to indicate that multiple selections are enabled; otherwise, false.
+
+ is null or empty.
+
+
+ Returns an HTML list box control that has the specified name, size, custom attributes defined by an attribute dictionary, items, default item, and selections, and that specifies whether multiple selections are enabled.
+ The HTML markup that represents the list box control.
+ The value to assign to the name attribute of the HTML select element.
+ The text to display for the default option in the list.
+ A list of instances that are used to populate the list.
+ An object that specifies the items in the list that are selected by default. The selections are retrieved through reflection by examining the properties of the object.
+ The value to assign to the size attribute of the element.
+ true to indicate that multiple selections are enabled; otherwise, false.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML list box control that has the specified name, size, custom attributes defined by an attribute object, items, default item, and selections, and that specifies whether multiple selections are enabled.
+ The HTML markup that represents the list box control.
+ The value to assign to the name attribute of the HTML select element.
+ The text to display for the default option in the list.
+ A list of instances that are used to populate the list.
+ An object that specifies the items in the list that are selected by default. The selections are retrieved through reflection by examining the properties of the object.
+ The value to assign to the size attribute of the element.
+ true to indicate that multiple selections are enabled; otherwise, false.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML list box control that has the specified name, items, default item, and custom attributes defined by an attribute object, and selections.
+ The HTML markup that represents the list box control.
+ The value to assign to the name attribute of the HTML select element.
+ The text to display for the default option in the list.
+ A list of instances that are used to populate the list.
+ An object that specifies the items in the list that are selected by default. The selections are retrieved through reflection by examining the properties of the object.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML password control that has the specified name.
+ The HTML markup that represents the password control.
+ The value to assign to the name attribute of the HTML control element.
+
+ is null or empty.
+
+
+ Returns an HTML password control that has the specified name and value.
+ The HTML markup that represents the password control.
+ The value to assign to the name attribute of the HTML control element.
+ The value to assign to the value attribute of the element.
+
+ is null or empty.
+
+
+ Returns an HTML password control that has the specified name, value, and custom attributes defined by an attribute dictionary.
+ The HTML markup that represents the password control.
+ The value to assign to the name attribute of the HTML control element.
+ The value to assign to the value attribute of the element.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML password control that has the specified name, value, and custom attributes defined by an attribute object.
+ The HTML markup that represents the password control.
+ The value to assign to the name attribute of the HTML control element.
+ The value to assign to the value attribute of the element.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML radio button control that has the specified name and value.
+ The HTML markup that represents the radio button control.
+ The value to assign to the name attribute of the HTML control element. The name attribute defines the group that the radio button belongs to.
+ The value to assign to the value attribute of the element.
+
+ is null or empty.
+
+
+ Returns an HTML radio button control that has the specified name, value, and default selected status.
+ The HTML markup that represents the radio button control.
+ The value to assign to the name attribute of the HTML control element. The name attribute defines the group that the radio button belongs to.
+ The value to assign to the value attribute of the element.
+ true to indicate that the control is selected; otherwise, false.
+
+ is null or empty.
+
+
+ Returns an HTML radio button control that has the specified name, value, default selected status, and custom attributes defined by an attribute dictionary.
+ The HTML markup that represents the radio button control.
+ The value to assign to the name attribute of the HTML control element. The name attribute defines the group that the radio button belongs to.
+ The value to assign to the value attribute of the element.
+ true to indicate that the control is selected; otherwise, false.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML radio button control that has the specified name, value, default selected status, and custom attributes defined by an attribute object.
+ The HTML markup that represents the radio button control.
+ The value to assign to the name attribute of the HTML control element. The name attribute defines the group that the radio button belongs to.
+ The value to assign to the value attribute of the element.
+ true to indicate that the control is selected; otherwise, false.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML radio button control that has the specified name, value, and custom attributes defined by an attribute dictionary.
+ The HTML markup that represents the radio button control.
+ The value to assign to the name attribute of the HTML control element. The name attribute defines the group that the radio button belongs to.
+ The value to assign to the value attribute of the element.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML radio button control that has the specified name, value, and custom attributes defined by an attribute object.
+ The HTML markup that represents the radio button control.
+ The value to assign to the name attribute of the HTML control element. The name attribute defines the group that the radio button belongs to.
+ The value to assign to the value attribute of the element.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns .
+
+
+ Wraps HTML markup in an instance so that it is interpreted as HTML markup.
+ The string to interpret as HTML markup instead of being HTML-encoded.
+
+
+ Returns an HTML multi-line text input (text area) control that has the specified name.
+ The HTML markup that represents the text area control.
+ The value to assign to the name attribute of the HTML textarea element.
+
+ is null or empty.
+
+
+ Returns an HTML multi-line text input (text area) control that has the specified name and custom attributes defined by an attribute dictionary.
+ The HTML markup that represents the text area control.
+ The value to assign to the name attribute of the HTML textarea element.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML multi-line text input (text area) control that has the specified name and custom attributes defined by an attribute object.
+ The HTML markup that represents the text area control.
+ The value to assign to the name attribute of the HTML textarea element.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML multi-line text input (text area) control that has the specified name and value.
+ The HTML markup that represents the text area control.
+ The value to assign to the name attribute of the HTML textrarea element.
+ The text to display.
+
+ is null or empty.
+
+
+ Returns an HTML multi-line text input (text area) control that has the specified name, value, and custom attributes defined by an attribute dictionary.
+ The HTML markup that represents the text area control.
+ The value to assign to the name attribute of the HTML textarea element.
+ The text to display.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML multi-line text input (text area) control that has the specified name, value, row attribute, col attribute, and custom attributes defined by an attribute dictionary.
+ The HTML markup that represents the text area control.
+ The value to assign to the name attribute of the HTML textarea element.
+ The text to display.
+ The value to assign to the rows attribute of the element.
+ The value to assign to the cols attribute of the element.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML multi-line text input (text area) control that has the specified name, value, row attribute, col attribute, and custom attributes defined by an attribute object.
+ The HTML markup that represents the text area control.
+ The value to assign to the name attribute of the HTML textarea element.
+ The text to display.
+ The value to assign to the rows attribute of the element.
+ The value to assign to the cols attribute of the element.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML multi-line text input (text area) control that has the specified name, value, and custom attributes defined by an attribute object.
+ The HTML markup that represents the text area control.
+ The value to assign to the name attribute of the HTML textarea element.
+ The text to display.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML text control that has the specified name.
+ The HTML markup that represents the text control.
+ The value to assign to the name attribute of the HTML control element.
+
+ is null or empty.
+
+
+ Returns an HTML text control that has the specified name and value.
+ The HTML markup that represents the text control.
+ The value to assign to the name attribute of the HTML control element.
+ The value to assign to the value attribute of the element.
+
+ is null or empty.
+
+
+ Returns an HTML text control that has the specified name, value, and custom attributes defined by an attribute dictionary.
+ The HTML markup that represents the text control.
+ The value to assign to the name attribute of the HTML control element.
+ The value to assign to the value attribute of the element.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML text control that has the specified name, value, and custom attributes defined by an attribute object.
+ The HTML markup that represents the text control.
+ The value to assign to the name attribute of the HTML control element.
+ The value to assign to the value attribute of the element.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns .
+
+
+ Gets or sets the name of the CSS class that is associated with field validation error messages.
+ The name of the CSS class that is associated with field validation errors. The default is field-validation-error.
+
+ is null.
+
+
+ Returns .
+
+
+ Returns an HTML span element that contains the first validation error message for the specified form field.
+ If the value in the specified field is valid, null; otherwise, the HTML markup that represents the validation error message that is associated with the specified field.
+ The name of the form field that was validated.
+
+ is null or empty.
+
+
+ Returns an HTML span element that has the specified custom attributes defined by an attribute dictionary, and that contains the first validation error message for the specified form field.
+ If the value in the specified field is valid, null; otherwise, the HTML markup that represents the validation error message that is associated with the specified field.
+ The name of the form field that was validated.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML span element that has the specified custom attributes defined by an attribute object, and that contains the first validation error message for the specified form field.
+ If the value in the specified field is valid, null; otherwise, the HTML markup that represents the validation error message that is associated with the specified field.
+ The name of the form field that was validated.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns an HTML span element that contains a validation error message for the specified form field.
+ If the value in the specified field is valid, null; otherwise, the HTML markup that represents the validation error message that is associated with the specified field.
+ The name of the form field that was validated.
+ The validation error message to display. If null, the first validation error message that is associated with the specified form field is displayed.
+
+ is null or empty.
+
+
+ Returns an HTML span element that has the specified custom attributes defined by an attribute dictionary, and that contains a validation error message for the specified form field.
+ If the specified field is valid, null; otherwise, the HTML markup that represents a validation error message that is associated with the specified field.
+ The name of the form field that was validated.
+ The validation error message to display. If null, the first validation error message that is associated with the specified form field is displayed.
+ The names and values of custom attributes for the element.
+
+ is null or empty.
+
+
+ Returns an HTML span element that has the specified custom attributes defined by an attribute object, and that contains a validation error message for the specified form field.
+ If the specified field is valid, null; otherwise, the HTML markup that represents a validation error message that is associated with the specified field.
+ The name of the form field that was validated.
+ The validation error message to display. If null, the first validation error message that is associated with the specified form field is displayed.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+ is null or empty.
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns an HTML div element that contains an unordered list of all validation error messages from the model-state dictionary.
+ The HTML markup that represents the validation error messages.
+
+
+ Returns an HTML div element that contains an unordered list of validation error message from the model-state dictionary, optionally excluding field-level errors.
+ The HTML markup that represents the validation error messages.
+ true to exclude field-level validation error messages from the list; false to include both model-level and field-level validation error messages.
+
+
+ Returns an HTML div element that has the specified custom attributes defined by an attribute dictionary, and that contains an unordered list of all validation error messages that are in the model-state dictionary.
+ The HTML markup that represents the validation error messages.
+ The names and values of custom attributes for the element.
+
+
+ Returns an HTML div element that has the specified custom attributes defined by an attribute object, and that contains an unordered list of all validation error messages that are in the model-state dictionary.
+ The HTML markup that represents the validation error messages.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+
+ Returns an HTML div element that contains a summary message and an unordered list of all validation error messages that are in the model-state dictionary.
+ The HTML markup that represents the validation error messages.
+ The message that comes before the list of validation error messages.
+
+
+ Returns an HTML div element that has the specified custom attributes defined by an attribute dictionary, and that contains a summary message and an unordered list of validation error message from the model-state dictionary, optionally excluding field-level errors.
+ The HTML markup that represents the validation error messages.
+ The summary message that comes before the list of validation error messages.
+ true to exclude field-level validation error messages from the results; false to include both model-level and field-level validation error messages.
+ The names and values of custom attributes for the element.
+
+
+ Returns an HTML div element that has the specified custom attributes defined by an attribute object, and that contains a summary message and an unordered list of validation error message from the model-state dictionary, optionally excluding field-level errors.
+ The HTML markup that represents the validation error messages.
+ The summary message that comes before the list of validation error messages.
+ true to exclude field-level validation error messages from the results; false to include and field-level validation error messages.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+
+ Returns an HTML div element that has the specified custom attributes defined by an attribute dictionary, and that contains a summary message and an unordered list of all validation error message from the model-state dictionary.
+ The HTML markup that represents the validation error messages.
+ The message that comes before the list of validation error messages.
+ The names and values of custom attributes for the element.
+
+
+ Returns an HTML div element that has the specified custom attributes defined by an attribute object, and that contains a summary message and an unordered list of all validation error message from the model-state dictionary.
+ The HTML markup that represents the validation error messages.
+ The summary message that comes before the list of validation error messages.
+ An object that contains custom attributes for the element. The attribute names and values are retrieved through reflection by examining the properties of the object.
+
+
+ Gets or sets the name of the CSS class that is associated with validation summary messages.
+ The name of the CSS class that is associated with validation summaries. The default is validation-summary-errors.
+
+ is null.
+
+
+ Returns .
+
+
+ Encapsulates the state of model binding to a property of an action-method argument, or to the argument itself.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns a list of strings that contains any errors that occurred during model binding.
+ The errors that occurred during model binding.
+
+
+ Returns an object that encapsulates the value that was bound during model binding.
+ The value that was bound.
+
+
+ Represents the result of binding a posted form to an action method, which includes information such as validation status and validation error messages.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using values that are copied from the specified model-state dictionary.
+ The model-state dictionary that values are copied from.
+
+
+ Adds the specified item to the model-state dictionary.
+ The item to add to the model-state dictionary.
+
+
+ Adds an item that has the specified key and value to the model-state dictionary.
+ The key.
+ The value.
+
+
+ Adds an error message to the model state that is associated with the specified key.
+ The key that is associated with the model state that the error message is added to.
+ The error message.
+
+
+ Adds an error message to the model state that is associated with the entire form.
+ The error message.
+
+
+ Removes all items from the model-state dictionary.
+
+
+ Determines whether the model-state dictionary contains the specified item.
+ true if the model-state dictionary contains the specified item; otherwise, false.
+ The item to look for.
+
+
+ Determines whether the model-state dictionary contains the specified key.
+ true if the model-state dictionary contains the specified key; otherwise, false.
+ The key to look for.
+
+
+ Copies the elements of the model-state dictionary to an array, starting at the specified index.
+ The one-dimensional instance where the elements will be copied to.
+ The index in at which copying begins.
+
+
+ Gets the number of model states that the model-state dictionary contains.
+ The number of model states in the model-state dictionary.
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Gets a value that indicates whether the model-state dictionary is read-only.
+ true if the model-state dictionary is read-only; otherwise, false.
+
+
+ Gets a value that indicates whether any error messages are associated with any model state in the model-state dictionary.
+ true if any error messages are associated with any model state in the dictionary; otherwise, false.
+
+
+ Determines whether any error messages are associated with the specified key.
+ true if no error messages are associated with the specified key, or the specified key does not exist; otherwise, false.
+ The key.
+
+ is null.
+
+
+ Gets or sets the model state that is associated with the specified key in the model-state dictionary.
+ The model state that is associated with the specified key in the dictionary.
+ The key that is associated with the model state.
+
+
+ Gets a list that contains the keys in the model-state dictionary.
+ The list of keys in the dictionary.
+
+
+ Copies the values from the specified model-state dictionary into this instance, overwriting existing values when the keys are the same.
+ The model-state dictionary that values are copied from.
+
+
+ Removes the first occurrence of the specified item from the model-state dictionary.
+ true if the item was successfully removed from the model-state dictionary; false if the item was not removed or if the item does not exist in the model-state dictionary.
+ The item to remove.
+
+
+ Removes the item that has the specified key from the model-state dictionary.
+ true if the item was successfully removed from the model-state dictionary; false if the item was not removed or does not exist in the model-state dictionary.
+ The key of the element to remove.
+
+
+ Sets the value of the model state that is associated with the specified key.
+ The key to set the value of.
+ The value to set the key to.
+
+
+ Returns an enumerator that can be used to iterate through the model-state dictionary.
+ An enumerator that can be used to iterate through the model-state dictionary.
+
+
+ Gets the model-state value that is associated with the specified key.
+ true if the model-state dictionary contains an element that has the specified key; otherwise, false.
+ The key to get the value of.
+ When this method returns, if the key is found, contains the model-state value that is associated with the specified key; otherwise, contains the default value for the type. This parameter is passed uninitialized.
+
+
+ Gets a list that contains the values in the model-state dictionary.
+ The list of values in the dictionary.
+
+
+ Represents an item in an HTML select list.
+
+
+ Initializes a new instance of the class using the default settings.
+
+
+ Initializes a new instance of the class by copying the specified select list item.
+ The select list item to copy.
+
+
+ Gets or sets a value that indicates whether the instance is selected.
+ true if the select list item is selected; otherwise, false.
+
+
+ Gets or sets the text that is used to display the instance on a web page.
+ The text that is used to display the select list item.
+
+
+ Gets or sets the value of the HTML value attribute of the HTML option element that is associated with the instance.
+ The value of the HTML value attribute that is associated with the select list item.
+
+
+
+
+
+
+ Returns .
+
+
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Defines an ASP.NET request scope storage provider.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the dictionary to store data in the application scope.
+ The dictionary that stores application scope data.
+
+
+ Gets or sets the dictionary to store data in the current scope.
+ The dictionary that stores current scope data.
+ The application start page was not executed before the attempt was made to set this property.
+
+
+ Gets the dictionary to store data in the global scope.
+ The dictionary that stores global scope data.
+
+
+ Gets the dictionary to store data in the request scope.
+ The dictionary that stores request scope data.
+ The application start page was not executed before the attempt was made to get this property.
+
+
+ Defines a dictionary that provides scoped access to data.
+
+
+ Gets and sets the dictionary that is used to store data in the current scope.
+ The dictionary that stores current scope data.
+
+
+ Gets the dictionary that is used to store data in the global scope.
+ The dictionary that stores global scope data.
+
+
+ Defines a class that is used to contain storage for a transient scope.
+
+
+ Returns a dictionary that is used to store data in a transient scope, based on the scope in the property.
+ The dictionary that stores transient scope data.
+
+
+ Returns a dictionary that is used to store data in a transient scope.
+ The dictionary that stores transient scope data.
+ The context.
+
+
+ Gets or sets the current scope provider.
+ The current scope provider.
+
+
+ Gets the dictionary that is used to store data in the current scope.
+ The dictionary that stores current scope data.
+
+
+ Gets the dictionary that is used to store data in the global scope.
+ The dictionary that stores global scope data.
+
+
+ Represents a collection of keys and values that are used to store data at different scope levels (local, global, and so on).
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the specified base scope.
+ The base scope.
+
+
+ Adds a key/value pair to the object using the specified generic collection.
+ The key/value pair.
+
+
+ Adds the specified key and specified value to the object.
+ The key.
+ The value.
+
+
+ Gets the dictionary that stores the object data.
+
+
+ Gets the base scope for the object.
+ The base scope for the object.
+
+
+ Removes all keys and values from the concatenated and objects.
+
+
+ Returns a value that indicates whether the specified key/value pair exists in either the object or in the object.
+ true if the object or the object contains an element that has the specified key/value pair; otherwise, false.
+ The key/value pair.
+
+
+ Returns a value that indicates whether the specified key exists in the object or in the object.
+ true if the object or the object contains an element that has the specified key; otherwise, false.
+ The key.
+
+
+ Copies all of the elements in the object and the object to an object, starting at the specified index.
+ The array.
+ The zero-based index in .
+
+
+ Gets the number of key/value pairs that are in the concatenated and objects.
+ The number of key/value pairs.
+
+
+ Returns an enumerator that can be used to iterate through concatenated and objects.
+ An object.
+
+
+ Returns an enumerator that can be used to iterate through the distinct elements of concatenated and objects.
+ An enumerator that contains distinct elements from the concatenated dictionary objects.
+
+
+ Gets a value that indicates whether the object is read-only.
+ true if the object is read-only; otherwise, false.
+
+
+ Gets or sets the element that is associated with the specified key.
+ The element that has the specified key.
+ The key of the element to get or set.
+
+
+ Gets a object that contains the keys from the concatenated and objects.
+ An object that contains that contains the keys.
+
+
+ Removes the specified key/value pair from the concatenated and objects.
+ true if the key/value pair is removed, or false if is not found in the concatenated and objects.
+ The key/value pair.
+
+
+ Removes the value that has the specified key from the concatenated and objects.
+ true if the key/value pair is removed, or false if is not found in the concatenated and objects.
+ The key.
+
+
+ Sets a value using the specified key in the concatenated and objects.
+ The key.
+ The value.
+
+
+ Returns an enumerator for the concatenated and objects.
+ The enumerator.
+
+
+ Gets the value that is associated with the specified key from the concatenated and objects.
+ true if the concatenated and objects contain an element that has the specified key; otherwise, false.
+ The key.
+ When this method returns, if the key is found, contains the value that is associated with the specified key; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized.
+
+
+ Gets a object that contains the values from the concatenated and objects.
+ The object that contains the values.
+
+
+ Provides scoped access to static data.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a dictionary that stores current data under a static context.
+ The dictionary that provides current scoped data.
+
+
+ Gets a dictionary that stores global data under a static context.
+ The dictionary that provides global scoped data.
+
+
+
\ No newline at end of file
diff --git a/packages/AspNetWebPages.Core.2.0.20126.16343/tools/Install.ps1 b/packages/AspNetWebPages.Core.2.0.20126.16343/tools/Install.ps1
new file mode 100644
index 0000000..6ad663f
--- /dev/null
+++ b/packages/AspNetWebPages.Core.2.0.20126.16343/tools/Install.ps1
@@ -0,0 +1,180 @@
+param($installPath, $toolsPath, $package, $project)
+
+if ($project.Type -eq 'Web Site') {
+ Import-Module (Join-Path $toolsPath VS.psd1)
+
+ $srcFiles = Join-Path $installPath "lib\net40\*.dll"
+
+ $projectRoot = Get-ProjectRoot $project
+ if (!$projectRoot) {
+ return;
+ }
+
+ $destDirectory = Join-Path $projectRoot "bin"
+ $fileSystem = Get-VsFileSystem
+
+ ls $srcFiles -Filter *.dll | %{
+ $destPath = Join-Path $destDirectory $_.Name
+ if (!(Test-Path $destPath)) {
+ $fileStream = $null
+ try {
+ $fileStream = [System.IO.File]::OpenRead($_.FullName)
+ $fileSystem.AddFile($destPath, $fileStream)
+ } catch {
+ # We don't want an exception to surface if we can't add the file for some reason
+ } finally {
+ if ($fileStream -ne $null) {
+ $fileStream.Dispose()
+ }
+ }
+ }
+ }
+}
+
+# SIG # Begin signature block
+# MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUoGth3MbLCESGRhoTpqwG6S5P
+# cz2gghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5
+# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
+# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
+# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy
+# MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
+# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
+# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
+# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5
+# z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6
+# ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN
+# KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA
+# dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb
+# cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH
+# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm
+# 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF
+# dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
+# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
+# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
+# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP
+# mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v
+# fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX
+# 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8
+# Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA
+# XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC
+# A6KgAwIBAgIKYQUTNgAAAAAAGjANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
+# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
+# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
+# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE3WhcNMTIxMDI1MjA0MjE3WjCBszEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
+# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjE1OUMtQTNGNy0yNTcwMSUwIwYD
+# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
+# AQEFAAOCAQ8AMIIBCgKCAQEAnDSYGckJKWOZAhZ1qIhXfaG7qUES/GSRpdYFeL93
+# 3OzmrrhQTsDjGr3tt/34IIpxOapyknKfignlE++RQe1hJWtRre6oQ7VhQiyd8h2x
+# 0vy39Xujc3YTsyuj25RhgFWhD23d2OwW/4V/lp6IfwAujnokumidj8bK9JB5euGb
+# 7wZdfvguw2oVnDwUL+fVlMgiG1HLqVWGIbda80ESOZ/wValOqiUrY/uRcjwPfMCW
+# ctzBo8EIyt7FybXACl+lnAuqcgpdCkB9LpjQq7KIj4aA6H3RvlVr4FgsyDY/+eYR
+# w/BDBYV4AxflLKcpfNPilRcAbNvcrTwZOgLgfWLUzvYdPQIDAQABo4IBCTCCAQUw
+# HQYDVR0OBBYEFPaDiyCHEe6Dy9vehaLSaIY3YXSQMB8GA1UdIwQYMBaAFCM0+NlS
+# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
+# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
+# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
+# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
+# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAGL0BQ1P5xtr
+# gudSDN95jKhVgTOX06TKyf6vSNt72m96KE/H0LeJ2NGmmcyRVgA7OOi3Mi/u+c9r
+# 2Zje1gL1QlhSa47aQNwWoLPUvyYVy0hCzNP9tPrkRIlmD0IOXvcEnyNIW7SJQcTa
+# bPg29D/CHhXfmEwAxLLs3l8BAUOcuELWIsiTmp7JpRhn/EeEHpFdm/J297GOch2A
+# djw2EUbKfjpI86/jSfYXM427AGOCnFejVqfDbpCjPpW3/GTRXRjCCwFQY6f889GA
+# noTjMjTdV5VAo21+2usuWgi0EAZeMskJ6TKCcRan+savZpiJ+dmetV8QI6N3gPJN
+# 1igAclCFvOUwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA
+# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
+# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+# eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT
+# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
+# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l
+# LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf
+# 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc
+# MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP
+# CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36
+# ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E
+# 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB
+# ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+# BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3
+# FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw
+# XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m
+# dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+# ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0
+# LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj
+# cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud
+# JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13
+# 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd
+# AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw
+# +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2
+# MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl
+# XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0
+# BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz
+# sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv
+# pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f
+# UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH
+# E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F
+# W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ
+# KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk
+# ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh
+# dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj
+# cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+# ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF
+# +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9
+# cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE
+# UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG
+# 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis
+# NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3
+# FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD
+# AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8
+# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is
+# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj
+# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB
+# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy
+# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho
+# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD
+# ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe
+# TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA
+# bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF
+# BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy
+# ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn
+# rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe
+# T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb
+# SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg
+# xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL
+# 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5
+# 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q
+# t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+
+# KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf
+# 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV
+# EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
+# QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE
+# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
+# BDEWBBRPPBgBB7wuCgUqrgSi1vxcimIHNTBqBgorBgEEAYI3AgEMMVwwWqA4gDYA
+# TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA
+# ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B
+# AQEFAASCAQBenMDYWCypjNo7KD7IL5zARP5tKWNHysnzREuFh7fBxnWaXirXW0J5
+# p5pHeRWLHWpTmoJDDPwMxvU06tRxX5muqvPutA3dqQiAvPFiZrqdNuBq5miZQ6hZ
+# v+jYhPUU/kTJGiurUXAtw+ulKCibVGjW0TgO16r45kmyspqezItMjAyKofbBl+C6
+# w0++YCZr1vv/f8gvqlg85ifhALjL/bUlpy3N6FrTGDeFzf7q7QhO2NrSOFpArSqw
+# 0vOBJW79VZ8HbNUu4I/vAysFRyj8RbIu+xm8iaRDslXwJI2ka4wBot6Ucj+zaUEY
+# WWfNvZ8NlpK/bpeifwknly96CLIiWqn8oYICHTCCAhkGCSqGSIb3DQEJBjGCAgow
+# ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
+# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
+# ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUTNgAAAAAAGjAH
+# BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF
+# MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFDSgrQ2+3zPn3zAO84uf
+# puLOI65jMA0GCSqGSIb3DQEBBQUABIIBAALljW1tyymODshEY9FwmnTFDbeqeeQw
+# YtspreF6jFWbILCt5TrUi3uW26NXGGmOu3U7Gsq30lCRX/k3wG2+/1NFtrScRz5n
+# Bdo2W8MWXqdRekK3gOAr0IuASfzOEFeBPFWuACGy6uiAb7hKbx37y+rU9ML9y0r4
+# d0JH7dLGL3lyzlB8eFwaZPtlJG35iXXD3CjqD7o+/6UdhR/54iyz4CfbPdmWZc3Q
+# uQRGLtkQrk+GpUl/R64AVPGISeDQikpf6dnws+6u8qHKlF5Ql+40rU3MypkRJPfg
+# PlnrdJlksA3SwVmcJUcEh6MyE7wTbXQDeY0jzCT18OpnrAnukeGIWCg=
+# SIG # End signature block
diff --git a/packages/AspNetWebPages.Core.2.0.20126.16343/tools/Uninstall.ps1 b/packages/AspNetWebPages.Core.2.0.20126.16343/tools/Uninstall.ps1
new file mode 100644
index 0000000..e17f823
--- /dev/null
+++ b/packages/AspNetWebPages.Core.2.0.20126.16343/tools/Uninstall.ps1
@@ -0,0 +1,174 @@
+param($installPath, $toolsPath, $package, $project)
+
+if ($project.Type -eq 'Web Site') {
+ Import-Module (Join-Path $toolsPath VS.psd1)
+
+ $projectRoot = Get-ProjectRoot $project
+ if (!$projectRoot) {
+ return;
+ }
+ $binDirectory = Join-Path $projectRoot "bin"
+ $srcDirectory = Join-Path $installPath "lib\net40\"
+ $fileSystem = Get-VsFileSystem
+
+ ls $srcDirectory -Filter *.dll | %{
+ $fileName = $_.Name
+ $fileInBin = Join-Path $binDirectory $fileName
+ if ($fileSystem.FileExists($fileInBin) -and ((Get-Item $fileInBin).Length -eq $_.Length)) {
+ # If a corresponding file exists in bin and has the exact file size as the one inside the package, it's most likely the same file.
+ try {
+ $fileSystem.DeleteFile($fileInBin)
+
+ } catch {
+ # We don't want an exception to surface if we can't delete the file
+ }
+ }
+ }
+}
+# SIG # Begin signature block
+# MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU5eFmkhW/FlQBz1yONQogDyby
+# xJGgghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5
+# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
+# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
+# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy
+# MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
+# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
+# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
+# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5
+# z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6
+# ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN
+# KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA
+# dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb
+# cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH
+# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm
+# 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF
+# dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
+# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
+# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
+# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP
+# mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v
+# fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX
+# 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8
+# Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA
+# XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC
+# A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
+# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
+# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
+# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
+# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD
+# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
+# AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R
+# sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS
+# 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK
+# f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ
+# CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl
+# MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw
+# HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS
+# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
+# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
+# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
+# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
+# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v
+# 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622
+# XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5
+# /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi
+# vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG
+# KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR
+# ARYRYopBdqAwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA
+# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
+# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+# eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT
+# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
+# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l
+# LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf
+# 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc
+# MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP
+# CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36
+# ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E
+# 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB
+# ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+# BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3
+# FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw
+# XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m
+# dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+# ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0
+# LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj
+# cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud
+# JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13
+# 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd
+# AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw
+# +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2
+# MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl
+# XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0
+# BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz
+# sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv
+# pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f
+# UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH
+# E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F
+# W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ
+# KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk
+# ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh
+# dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj
+# cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+# ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF
+# +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9
+# cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE
+# UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG
+# 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis
+# NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3
+# FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD
+# AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8
+# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is
+# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj
+# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB
+# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy
+# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho
+# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD
+# ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe
+# TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA
+# bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF
+# BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy
+# ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn
+# rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe
+# T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb
+# SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg
+# xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL
+# 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5
+# 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q
+# t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+
+# KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf
+# 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV
+# EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
+# QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE
+# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
+# BDEWBBRx+YgRrX5dASbxCVCxyd7ne/BLVDBqBgorBgEEAYI3AgEMMVwwWqA4gDYA
+# TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA
+# ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B
+# AQEFAASCAQAwsAzaCdBDpwei518RWEy+vbAGwNcMOB1ZOLEijtZSyarlaha5pjhb
+# pjrCDVpmEauR+LmF9101ej/27DeLVdXQ4I3+MmW9AB75IZ50/CJjiMfRgDEGWau0
+# NTKKA62iOY7Bu0hLN5cYeJnFSc8XE9ehq5MvwpNZZkXh39MqKl/CsFy+prWQp1/x
+# GiTYkZnM6jL9GpfHQBX8NXqlUTeENJBH8KpDd9fpFvmRDi084xJU28O98uWOnQPn
+# ndze19YIRcFq0Xs3DWARlawYTQdVp+/ud05tFI2LAb27ExK892tuq47ffVjQDta0
+# f6JA80pQ9iP6yUk/awhiMqKFxpdWUnK5oYICHTCCAhkGCSqGSIb3DQEJBjGCAgow
+# ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
+# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
+# ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUZlgAAAAAAGzAH
+# BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF
+# MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFG8OGHFrod8cqU9j8yCh
+# dVpgbfV9MA0GCSqGSIb3DQEBBQUABIIBAEl95dVnVN+61kqnMy6QKVQ483Zx3w3i
+# RB0gWZXbMfWzO4kfyoFzww4OHXvx/8ilGPbKLFUnL7Xf3I7kCrJbG4H2ibUh6ZmT
+# 7B4X4QGCa0FWiEyuEkzwYaFo3FR0tfUk2z3TBsqmKLoSSV2xbMg/zBCbpU47g3uh
+# pRpD5Mf6KlStl+ZOOaMVX58Hkea2aSb77oFBYh9DaENOMGLGWC21TLWEI4tnjB7v
+# tzVwFQrbFjXUuIlkjw/2y9D1YpgzzA8p4rdjm6gXXlqeNc7TL0jpfrH0HU77AwPs
+# AS/AhHbXuf3wh/1mABJpArpIKV4wTMx2dPer1BNeQy/OCUMOOaaJ6ig=
+# SIG # End signature block
diff --git a/packages/AspNetWebPages.Core.2.0.20126.16343/tools/VS.psd1 b/packages/AspNetWebPages.Core.2.0.20126.16343/tools/VS.psd1
new file mode 100644
index 0000000..a3e0ce5
--- /dev/null
+++ b/packages/AspNetWebPages.Core.2.0.20126.16343/tools/VS.psd1
@@ -0,0 +1,225 @@
+@{
+
+# Script module or binary module file associated with this manifest
+ModuleToProcess = 'VS.psm1'
+
+# Version number of this module.
+ModuleVersion = '0.1'
+
+# ID used to uniquely identify this module
+GUID = 'a9610a6b-5f18-4859-b4ed-c0b61b356f35'
+
+# Author of this module
+Author = 'Microsoft Corporation'
+
+# Company or vendor of this module
+CompanyName = 'Microsoft Corporation'
+
+# Copyright statement for this module
+Copyright = '(c) 2011 Microsoft Corporation. All rights reserved.'
+
+# Description of the functionality provided by this module
+Description = 'Powershell wrapper for NuGet.VisualStudio'
+
+# Minimum version of the Windows PowerShell engine required by this module
+PowerShellVersion = '2.0'
+
+# Name of the Windows PowerShell host required by this module
+PowerShellHostName = 'Package Manager Host'
+
+# Minimum version of the Windows PowerShell host required by this module
+PowerShellHostVersion = '1.2'
+
+# Minimum version of the .NET Framework required by this module
+DotNetFrameworkVersion = '4.0'
+
+# Minimum version of the common language runtime (CLR) required by this module
+CLRVersion = ''
+
+# Processor architecture (None, X86, Amd64, IA64) required by this module
+ProcessorArchitecture = ''
+
+# Modules that must be imported into the global environment prior to importing this module
+RequiredModules = @()
+
+# Assemblies that must be loaded prior to importing this module
+RequiredAssemblies = @()
+
+# Script files (.ps1) that are run in the caller's environment prior to importing this module
+ScriptsToProcess = @()
+
+# Type files (.ps1xml) to be loaded when importing this module
+TypesToProcess = @()
+
+# Format files (.ps1xml) to be loaded when importing this module
+FormatsToProcess = @()
+
+# Modules to import as nested modules of the module specified in ModuleToProcess
+NestedModules = @('VS.psm1')
+
+# Functions to export from this module
+FunctionsToExport = '*'
+
+# Cmdlets to export from this module
+CmdletsToExport = ''
+
+# Variables to export from this module
+VariablesToExport = ''
+
+# Aliases to export from this module
+AliasesToExport = ''
+
+# List of all files packaged with this module
+FileList = @()
+
+# Private data to pass to the module specified in ModuleToProcess
+PrivateData = ''
+
+}
+# SIG # Begin signature block
+# MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUhSWDsTDjCpf84MGVMRg7ZaTN
+# 54mgghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5
+# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
+# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
+# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy
+# MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
+# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
+# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
+# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5
+# z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6
+# ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN
+# KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA
+# dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb
+# cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH
+# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm
+# 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF
+# dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
+# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
+# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
+# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP
+# mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v
+# fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX
+# 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8
+# Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA
+# XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC
+# A6KgAwIBAgIKYQUTNgAAAAAAGjANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
+# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
+# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
+# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE3WhcNMTIxMDI1MjA0MjE3WjCBszEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
+# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjE1OUMtQTNGNy0yNTcwMSUwIwYD
+# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
+# AQEFAAOCAQ8AMIIBCgKCAQEAnDSYGckJKWOZAhZ1qIhXfaG7qUES/GSRpdYFeL93
+# 3OzmrrhQTsDjGr3tt/34IIpxOapyknKfignlE++RQe1hJWtRre6oQ7VhQiyd8h2x
+# 0vy39Xujc3YTsyuj25RhgFWhD23d2OwW/4V/lp6IfwAujnokumidj8bK9JB5euGb
+# 7wZdfvguw2oVnDwUL+fVlMgiG1HLqVWGIbda80ESOZ/wValOqiUrY/uRcjwPfMCW
+# ctzBo8EIyt7FybXACl+lnAuqcgpdCkB9LpjQq7KIj4aA6H3RvlVr4FgsyDY/+eYR
+# w/BDBYV4AxflLKcpfNPilRcAbNvcrTwZOgLgfWLUzvYdPQIDAQABo4IBCTCCAQUw
+# HQYDVR0OBBYEFPaDiyCHEe6Dy9vehaLSaIY3YXSQMB8GA1UdIwQYMBaAFCM0+NlS
+# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
+# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
+# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
+# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
+# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAGL0BQ1P5xtr
+# gudSDN95jKhVgTOX06TKyf6vSNt72m96KE/H0LeJ2NGmmcyRVgA7OOi3Mi/u+c9r
+# 2Zje1gL1QlhSa47aQNwWoLPUvyYVy0hCzNP9tPrkRIlmD0IOXvcEnyNIW7SJQcTa
+# bPg29D/CHhXfmEwAxLLs3l8BAUOcuELWIsiTmp7JpRhn/EeEHpFdm/J297GOch2A
+# djw2EUbKfjpI86/jSfYXM427AGOCnFejVqfDbpCjPpW3/GTRXRjCCwFQY6f889GA
+# noTjMjTdV5VAo21+2usuWgi0EAZeMskJ6TKCcRan+savZpiJ+dmetV8QI6N3gPJN
+# 1igAclCFvOUwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA
+# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
+# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+# eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT
+# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
+# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l
+# LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf
+# 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc
+# MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP
+# CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36
+# ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E
+# 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB
+# ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+# BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3
+# FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw
+# XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m
+# dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+# ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0
+# LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj
+# cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud
+# JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13
+# 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd
+# AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw
+# +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2
+# MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl
+# XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0
+# BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz
+# sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv
+# pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f
+# UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH
+# E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F
+# W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ
+# KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk
+# ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh
+# dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj
+# cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+# ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF
+# +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9
+# cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE
+# UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG
+# 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis
+# NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3
+# FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD
+# AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8
+# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is
+# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj
+# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB
+# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy
+# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho
+# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD
+# ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe
+# TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA
+# bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF
+# BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy
+# ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn
+# rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe
+# T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb
+# SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg
+# xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL
+# 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5
+# 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q
+# t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+
+# KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf
+# 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV
+# EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
+# QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE
+# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
+# BDEWBBQ/h+p82rMdy7PbO1bTNehunSLFiDBqBgorBgEEAYI3AgEMMVwwWqA4gDYA
+# TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA
+# ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B
+# AQEFAASCAQBCU3llm0n8p/Gfo247NTbxTxcz0XXel/GjLShxM4hatGZyz5eGZszW
+# WLT+UlifzLzU8H37SZaafTdiysB24O2Fub14g8ygv62IDNL4QjEiNSxAFq67tdzT
+# FQtClLlxRgnrcJood9NZCooAlGae1fS8EHgf2kE6d1KR/NYkQyZrAmUGyZ36YwD8
+# gMwqyLc7SnWIzv7pepJBSPvQyNYEKrX/9vnTOTYXo/Tjj32TxGWYN56551UaMtQP
+# ZrZS34yJLv1frZBGJEK3F5pw5MSPbaIvR1O0de7XjTlG2Z+T6hasG3zVCQi9ByW3
+# iavcbiEh8t0z1IaybtgExWgzer3oGSRSoYICHTCCAhkGCSqGSIb3DQEJBjGCAgow
+# ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
+# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
+# ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUTNgAAAAAAGjAH
+# BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF
+# MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFKZpdn6FFa4AHuOurptD
+# Zd4WyMlRMA0GCSqGSIb3DQEBBQUABIIBAGa/G9k0yOCXe7mPIcEWWWDkI4Mlw8ox
+# hYkusQhogDFjHKPsuJSH0y98ryBWNhWby9jJGf/NrXCABpKHc6hlXb/7i4+HC3J+
+# 6ernYBUaIUEjV7NBcTQZ2aRvxHRiM/uS9sN0xvT/g4WpWwnIfso72D2hz1jK6tc0
+# Og1tw1i+X/Bw/HwVcSV8rXFOLAYglt75/+4bF900d1lTCmrfPZ9Ec+XHq7HQQiey
+# h7RDchb0V4cX/vqxNx37FL4/L+r/SYqEVBtIKYaXiidlVcm4SnSXY8ZTp7UOZEHA
+# VBW/+MYgEYmjAWL7m+a2upQ+k+vmHn0499hhWGz12zfsLEPIzWJ9QhQ=
+# SIG # End signature block
diff --git a/packages/AspNetWebPages.Core.2.0.20126.16343/tools/VS.psm1 b/packages/AspNetWebPages.Core.2.0.20126.16343/tools/VS.psm1
new file mode 100644
index 0000000..2f330d7
--- /dev/null
+++ b/packages/AspNetWebPages.Core.2.0.20126.16343/tools/VS.psm1
@@ -0,0 +1,166 @@
+function Get-VsFileSystem {
+ $componentModel = Get-VSComponentModel
+ $fileSystemProvider = $componentModel.GetService([NuGet.VisualStudio.IFileSystemProvider])
+ $solutionManager = $componentModel.GetService([NuGet.VisualStudio.ISolutionManager])
+
+ $fileSystem = $fileSystemProvider.GetFileSystem($solutionManager.SolutionDirectory)
+
+ return $fileSystem
+}
+
+function Get-ProjectRoot($project) {
+ try {
+ $project.Properties.Item("FullPath").Value
+ } catch {
+
+ }
+}
+
+Export-ModuleMember *
+# SIG # Begin signature block
+# MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUjXEaZx7/tt/6noN5dH+MnQ7K
+# 82+gghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5
+# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
+# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
+# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy
+# MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
+# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
+# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
+# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5
+# z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6
+# ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN
+# KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA
+# dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb
+# cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH
+# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm
+# 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF
+# dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
+# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
+# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
+# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP
+# mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v
+# fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX
+# 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8
+# Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA
+# XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC
+# A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
+# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
+# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
+# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
+# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD
+# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
+# AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R
+# sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS
+# 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK
+# f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ
+# CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl
+# MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw
+# HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS
+# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
+# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
+# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
+# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
+# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v
+# 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622
+# XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5
+# /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi
+# vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG
+# KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR
+# ARYRYopBdqAwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA
+# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
+# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+# eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT
+# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
+# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l
+# LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf
+# 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc
+# MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP
+# CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36
+# ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E
+# 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB
+# ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+# BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3
+# FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw
+# XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m
+# dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+# ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0
+# LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj
+# cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud
+# JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13
+# 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd
+# AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw
+# +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2
+# MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl
+# XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0
+# BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz
+# sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv
+# pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f
+# UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH
+# E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F
+# W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ
+# KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk
+# ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh
+# dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj
+# cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+# ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF
+# +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9
+# cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE
+# UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG
+# 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis
+# NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3
+# FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD
+# AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8
+# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is
+# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj
+# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB
+# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy
+# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho
+# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD
+# ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe
+# TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA
+# bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF
+# BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy
+# ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn
+# rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe
+# T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb
+# SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg
+# xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL
+# 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5
+# 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q
+# t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+
+# KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf
+# 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV
+# EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
+# QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE
+# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
+# BDEWBBS5D8CFNM/aE6c8XOM5Hh0+N422ITBqBgorBgEEAYI3AgEMMVwwWqA4gDYA
+# TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA
+# ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B
+# AQEFAASCAQAOnCgt85o0rg9FynTO++5HSg2WvHyB2nNfMOH60O09cMLGfvnh0Bgq
+# ft43lFD/8FaWeJq2zN/gPK1qFQbHZ2y4rCvMeBmgaPZm/u/srXUHU10GcBqjvScM
+# MX0h94fRX7mDkb1XLlPwm0QQZvOvebUzbsMIhA6OUahAMDTiR/7ZwDy23l7oO9u/
+# 7ZZRkbWpJr13AJ7cJc3iSvEpUJfxdbcxuUR3pakqWCQ7fX1chXuKw/f3NgSWe/un
+# jpXDDXWpurjpqKKj3CFf1gIvd0ag1yfxletiEAuEFlcgyuPEaTKDkHbab6CROdfT
+# a9YOC3fmp6lJEXRldTkWXs/XGoV9IZoDoYICHTCCAhkGCSqGSIb3DQEJBjGCAgow
+# ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
+# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
+# ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUZlgAAAAAAGzAH
+# BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF
+# MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFMD86sE3yf/lRFJLPdTR
+# mIzGknFjMA0GCSqGSIb3DQEBBQUABIIBAMSqWufi4zcg1wajaj5tSQugG1z3dhGA
+# hrU27USf9T49tR+HjpY/AY661PphIoozbo60sC7UYooBIJrelLfEFuWAF9LGNZ3M
+# uje2pI3eS3kajfLV9+UjrrSqa44MyYvi6cbiWagZ99ehcSboCLInB1HBrwiihpSM
+# VGfMdR/CpSub4m/vGE2Guo9ERA5cAu8k/P7/7u+YPIrUf6/IDglLplwmhAavTHY1
+# DL6GO3vQkmBio0XFVxqVegTnaU8WZTE4V1PgH7FV20MweCVxeDCyE6pY5Mu7ZULd
+# oBmomH8fas9OhqZpILWUf3eE9vv2A/rqxnuc3pKPJGX1bjVhVK7oIQE=
+# SIG # End signature block
diff --git a/packages/EntityFramework.4.1.10331.0/EntityFramework.4.1.10331.0.nupkg b/packages/EntityFramework.4.1.10331.0/EntityFramework.4.1.10331.0.nupkg
new file mode 100644
index 0000000..f6c5654
Binary files /dev/null and b/packages/EntityFramework.4.1.10331.0/EntityFramework.4.1.10331.0.nupkg differ
diff --git a/packages/EntityFramework.4.1.10331.0/lib/net40/EntityFramework.dll b/packages/EntityFramework.4.1.10331.0/lib/net40/EntityFramework.dll
new file mode 100644
index 0000000..6fd1b5c
Binary files /dev/null and b/packages/EntityFramework.4.1.10331.0/lib/net40/EntityFramework.dll differ
diff --git a/packages/EntityFramework.4.1.10331.0/lib/net40/EntityFramework.xml b/packages/EntityFramework.4.1.10331.0/lib/net40/EntityFramework.xml
new file mode 100644
index 0000000..61abdd3
--- /dev/null
+++ b/packages/EntityFramework.4.1.10331.0/lib/net40/EntityFramework.xml
@@ -0,0 +1,13206 @@
+
+
+
+ EntityFramework
+
+
+
+
+ Strongly-typed and parameterized string resources.
+
+
+
+
+ A string like "The '{0}' property of EdmPrimitiveType is fixed and cannot be set."
+
+
+
+
+ A string like "The namespace '{0}' is a system namespace and cannot be used by other schemas. Choose another namespace name."
+
+
+
+
+ A string like "Role '{0}' in AssociationSets ‘{1}’ and ‘{2}’ refers to the same EntitySet '{3}' in EntityContainer '{4}'. Make sure that if two or more AssociationSets refer to the same AssociationType, the ends do not refer to the same EntitySet."
+
+
+
+
+ A string like "The referenced EntitySet ‘{0}’ for End ‘{1}’ could not be found in the containing EntityContainer."
+
+
+
+
+ A string like "Type '{0}' is derived from type '{1}' that is the type for EntitySet '{2}'. Type '{0}' defines new concurrency requirements that are not allowed for subtypes of base EntitySet types."
+
+
+
+
+ A string like "EntitySet ‘{0}’ is based on type ‘{1}’ that has no keys defined."
+
+
+
+
+ A string like "The end name ‘{0}’ is already defined."
+
+
+
+
+ A string like "The key specified in EntityType '{0}' is not valid. Property '{1}' is referenced more than once in the Key element."
+
+
+
+
+ A string like "Property '{0}' has a CollectionKind specified but is not a collection property."
+
+
+
+
+ A string like "Property '{0}' has a CollectionKind specified. CollectionKind is only supported in version 1.1 EDM models."
+
+
+
+
+ A string like "ComplexType '{0}' is marked as abstract. Abstract ComplexTypes are only supported in version 1.1 EDM models."
+
+
+
+
+ A string like "ComplexType '{0}' has a BaseType specified. ComplexType inheritance is only supported in version 1.1 EDM models."
+
+
+
+
+ A string like "Key part '{0}' for type ‘{1}’ is not valid. All parts of the key must be non-nullable."
+
+
+
+
+ A string like "The property '{0}' in EntityType '{1}' is not valid. All properties that are part of the EntityKey must be of PrimitiveType."
+
+
+
+
+ A string like "Key usage is not valid. The {0} class cannot define keys because one of its base classes (‘{1}’) defines keys."
+
+
+
+
+ A string like "EntityType '{0}' has no key defined. Define the key for this EntityType."
+
+
+
+
+ A string like "NavigationProperty is not valid. Role ‘{0}’ or Role ‘{1}’ is not defined in Relationship ‘{2}’."
+
+
+
+
+ A string like "End '{0}' on relationship '{1}' cannot have an operation specified because its multiplicity is '*'. Operations cannot be specified on ends with multiplicity '*'."
+
+
+
+
+ A string like "Each Name and PluralName in a relationship must be unique. '{0}' is already defined."
+
+
+
+
+ A string like "In relationship '{0}', the Principal and Dependent Role of the referential constraint refer to the same Role in the relationship type."
+
+
+
+
+ A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Valid values for multiplicity for the Principal Role are '0..1' or '1'."
+
+
+
+
+ A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because all the properties in the Dependent Role are nullable, multiplicity of the Principal Role must be '0..1'."
+
+
+
+
+ A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because at least one of the properties in the Dependent Role is non-nullable, multiplicity of the Principal Role must be '1'."
+
+
+
+
+ A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because all of the properties in the Dependent Role are non-nullable, multiplicity of the Principal Role must be '1'."
+
+
+
+
+ A string like "Properties referred by the Dependent Role ‘{0}’ must be a subset of the key of the EntityType ‘{1}’ referred to by the Dependent Role in the referential constraint for relationship ‘{2}’."
+
+
+
+
+ A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be ‘1’."
+
+
+
+
+ A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be ‘*’."
+
+
+
+
+ A string like "The types of all properties in the Dependent Role of a referential constraint must be the same as the corresponding property types in the Principal Role. The type of property '{0}' on entity '{1}' does not match the type of property '{2}' on entity '{3}' in the referential constraint '{4}'."
+
+
+
+
+ A string like "There is no property with name '{0}' defined in the type referred to by Role '{1}'."
+
+
+
+
+ A string like "A nullable ComplexType is not supported. Property '{0}' must not allow nulls."
+
+
+
+
+ A string like "A property cannot be of type ‘{0}’. The property type must be a ComplexType or a PrimitiveType."
+
+
+
+
+ A string like "Each member name in an EntityContainer must be unique. A member with name '{0}' is already defined."
+
+
+
+
+ A string like "Each type name in a schema must be unique. Type name '{0}' is already defined."
+
+
+
+
+ A string like "Name ‘{0}’ cannot be used in type ‘{1}’. Member names cannot be the same as their enclosing type."
+
+
+
+
+ A string like "Each property name in a type must be unique. Property name '{0}' is already defined."
+
+
+
+
+ A string like "A cycle was detected in the type hierarchy of '{0}'."
+
+
+
+
+ A string like "A property cannot be of type ‘{0}’. The property type must be a ComplexType, a PrimitiveType, or a CollectionType."
+
+
+
+
+ A string like "The specified name must not be longer than 480 characters: '{0}'."
+
+
+
+
+ A string like "The specified name is not allowed: '{0}'."
+
+
+
+
+ A string like "NavigationProperty is not valid. The FromRole and ToRole are the same."
+
+
+
+
+ A string like "OnDelete can be specified on only one End of an EdmAssociation."
+
+
+
+
+ A string like "The number of properties in the Dependent and Principal Roles in a relationship constraint must be identical."
+
+
+
+
+ A string like "The name is missing or not valid."
+
+
+
+
+ A string like "AssociationEnd must not be null."
+
+
+
+
+ A string like "DependentEnd must not be null."
+
+
+
+
+ A string like "DependentProperties must not be empty."
+
+
+
+
+ A string like "Association must not be null."
+
+
+
+
+ A string like "ResultEnd must not be null."
+
+
+
+
+ A string like "EntityType must not be null."
+
+
+
+
+ A string like "ElementType must not be null."
+
+
+
+
+ A string like "ElementType must not be null."
+
+
+
+
+ A string like "SourceSet must not be null."
+
+
+
+
+ A string like "TargetSet must not be null."
+
+
+
+
+ A string like "The type is not a valid EdmTypeReference."
+
+
+
+
+ A string like "Serializer can only serialize an EdmModel that has one EdmNamespace and one EdmEntityContainer."
+
+
+
+
+ Strongly-typed and parameterized exception factory.
+
+
+
+
+ The exception that is thrown when a null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument.
+
+
+
+
+ The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method.
+
+
+
+
+ The exception that is thrown when the author has yet to implement the logic at this point in the program. This can act as an exception based TODO tag.
+
+
+
+
+ The exception that is thrown when an invoked method is not supported, or when there is an attempt to read, seek, or write to a stream that does not support the invoked functionality.
+
+
+
+
+ Allows the construction and modification of a user-specified annotation (name-value pair) on a instance.
+
+
+
+
+ INamedDataModelItem is implemented by model-specific base types for all types with a property.
+
+
+
+
+
+ Gets or sets the currently assigned name.
+
+
+
+
+ Constructs a new DataModelAnnotation
+
+
+
+
+ Gets or sets an optional namespace that can be used to distinguish the annotation from others with the same value.
+
+
+
+
+ Gets or sets the name of the annotation.
+
+
+
+
+ Gets or sets the value of the annotation.
+
+
+
+
+
+
+
+
+
+ DataModelEventArgs is the base argument type for all events raised by consumers of Entity Data Model (EDM) models.
+
+
+
+
+ Gets a value indicating the that caused the event to be raised.
+
+
+
+
+ Gets an optional value indicating which property of the source item caused the event to be raised.
+
+
+
+
+ Gets a value that identifies the specific error that is being raised.
+
+
+
+
+ Gets an optional descriptive message the describes the error that is being raised.
+
+
+
+
+ DataModelItem is the base for all types in the EDM metadata reflection, construction and modification API.
+
+
+
+
+ IAnnotatedDataModelItem is implemented by model-specific base types for all types with an property.
+
+
+
+
+
+ Gets or sets the currently assigned annotations.
+
+
+
+
+ DbAliasedMetadataItem provides the base type for all Database Metadata types that can have an optional that should be used instead of the item's when referring to the item in the database.
+
+
+
+
+ NamedDbItem is the base for all types in the Database Metadata construction and modification API with a property.
+
+
+
+
+ The base for all all Database Metadata types that support annotation using .
+
+
+
+
+ DbDataModelItem is the base for all types in the Database Metadata construction and modification API.
+
+
+
+
+ Gets or sets the currently assigned annotations.
+
+
+
+
+ Gets or sets the currently assigned name.
+
+
+
+
+ Gets an optional alternative identifier that should be used when referring to this item in the database.
+
+
+
+
+ When implemented in derived types, allows the construction and modification of a column in a Database Metadata table or row.
+
+
+
+
+ Gets or sets a string indicating the database-specific type of the column.
+
+
+
+
+ Gets or sets a value indicating whether the column is nullable.
+
+
+
+
+ Gets or sets an optional instance that applies additional constraints to the referenced database-specific type of the column.
+
+
+
+
+ Allows the construction and modification of a database in a Database Metadata model.
+
+
+
+
+ Gets or sets an optional value that indicates the database model version.
+
+
+
+
+ Gets or sets the collection of instances that specifies the schemas within the database.
+
+
+
+
+ Allows the construction and modification of a foreign key constraint sourced by a instance.
+
+
+
+
+ Gets or sets the to take when a delete operation is attempted.
+
+
+
+
+ Indicates which Database Metadata concept is represented by a given item.
+
+
+
+
+ Database Kind
+
+
+
+
+ Schema Kind
+
+
+
+
+ Foreign Key Constraint Kind
+
+
+
+
+ Function Kind
+
+
+
+
+ Function Parameter Kind
+
+
+
+
+ Function Return or Parameter Type Kind
+
+
+
+
+ Row Column Kind
+
+
+
+
+ Table Kind
+
+
+
+
+ Table Column Kind
+
+
+
+
+ Primitive Facets Kind
+
+
+
+
+ Specifies the action to take on a given operation.
+
+
+
+
+ Default behavior
+
+
+
+
+ Restrict the operation
+
+
+
+
+ Cascade the operation
+
+
+
+
+ Allows the construction and modification of additional constraints that can be applied to a specific use of a primitive type in a Database Metadata item.
+
+
+
+
+ Returns true if any facet value property currently has a non-null value; otherwise returns false.
+
+
+
+
+ Gets or sets an optional value indicating whether the referenced type should be considered to have a fixed or variable length.
+
+
+
+
+ Gets or sets an optional value indicating whether the referenced type should be considered to have its intrinsic maximum length, rather than a specific value.
+
+
+
+
+ Gets or sets an optional value indicating whether the referenced type should be considered to be Unicode or non-Unicode.
+
+
+
+
+ Gets or sets an optional value indicating the current constraint on the type's maximum length.
+
+
+
+
+ Gets or sets an optional value indicating the current constraint on the type's precision.
+
+
+
+
+ Gets or sets an optional value indicating the current constraint on the type's scale.
+
+
+
+
+ Allows the construction and modification of a database schema in a database model.
+
+
+
+
+ Gets or sets the collection of instances that specifies the tables declared within the schema.
+
+
+
+
+ DbSchemaMetadataItem is the base for all types that can be contained in a schema.
+
+
+
+
+ Allows the construction and modification of a column in a table.
+
+
+
+
+ Gets or sets a value indicating whether the column is part of the table's primary key.
+
+
+
+
+ Gets or sets a value indicating if and how the value of the column is automatically generated.
+
+
+
+
+ Gets or sets an optional value indicating the collation specific to this table column.
+
+
+
+
+ Gets or sets an optional value that specifies the default value for the column.
+
+
+
+
+ Allows the construction and modification a table in a database schema.
+
+
+
+
+ Gets or sets the collection of instances that specifies the columns present within the table.
+
+
+
+
+ Gets or sets the collection of instances from the collection of the table that are part of the primary key.
+
+
+
+
+ Gets or sets the collection of instances that defines the foreign key constraints sourced from the table.
+
+
+
+
+ Represents a specific use of a type in a Database Metadata item.
+
+
+
+
+ Gets or sets an optional instance that applies additional constraints to a referenced primitive type.
+
+ Accessing this property forces the creation of a DbPrimitiveTypeFacets value if no value has previously been set. Use to determine whether or not this property currently has a value.
+
+
+
+ Gets or sets a value indicating whether the represented type is a collection type.
+
+
+
+
+ Gets or sets an optional value indicating whether the referenced type should be considered nullable.
+
+
+
+
+ Gets a value indicating whether the type has been configured as a row type by the addition of one or more RowColumns.
+
+
+
+
+ Represents the mapping of an EDM association end () as a collection of property mappings ().
+
+
+
+
+ DbMappingMetadataItem is the base for all types in the EDM-to-Database Mapping construction and modification API that support annotation using .
+
+
+
+
+ DbMappingModelItem is the base for all types in the EDM-to-Database Mapping construction and modification API.
+
+
+
+
+ Gets or sets the currently assigned annotations.
+
+
+
+
+ Gets an value representing the association end that is being mapped.
+
+
+
+
+ Gets the collection of s that specifies how the association end key properties are mapped to the table.
+
+
+
+
+ Gets an value representing the association set that is being mapped.
+
+
+
+
+ Gets a value representing the table to which the entity type's properties are being mapped.
+
+
+
+
+ Gets the collection of s that specifies the constant or null values that columns in must have for this type mapping to apply.
+
+
+
+
+ Allows the construction and modification of a condition for a column in a database table.
+
+
+
+
+ Gets or sets a value representing the table column which must contain for this condition to hold.
+
+
+
+
+ Gets or sets the value that must contain for this condition to hold.
+
+
+
+
+ Represents the mapping of an entity property to a column in a database table.
+
+
+
+
+ Gets or sets the collection of instances that defines the mapped property, beginning from a property declared by the mapped entity type and optionally proceeding through properties of complex property result types.
+
+
+
+
+ Gets or sets a value representing the table column to which the entity property is being mapped.
+
+
+
+
+ Allows the construction and modification of the mapping of an EDM entity container () to a database ().
+
+
+
+
+ Gets or sets an value representing the entity container that is being mapped.
+
+
+
+
+ Gets or sets the collection of s that specifies how the container's entity sets are mapped to the database.
+
+
+
+
+ Gets the collection of s that specifies how the container's association sets are mapped to the database.
+
+
+
+
+ Allows the construction and modification of the mapping of an EDM entity set () to a database ().
+
+
+
+
+ Gets or sets an value representing the entity set that is being mapped.
+
+
+
+
+ Gets or sets the collection of s that specifies how the set's entity types are mapped to the database.
+
+
+
+
+ Allows the construction and modification of a complete or partial mapping of an EDM entity type () or type hierarchy to a specific database table ().
+
+
+
+
+ Gets or sets an value representing the entity type or hierarchy that is being mapped.
+
+
+
+
+ Gets or sets a value indicating whether this type mapping applies to and all its direct or indirect subtypes (true), or only to (false).
+
+
+
+
+ Gets a value representing the table to which the entity type's properties are being mapped.
+
+
+
+
+ Gets the collection of s that specifies how the type's properties are mapped to the table.
+
+
+
+
+ Gets the collection of s that specifies the constant or null values that columns in must have for this type mapping fragment to apply.
+
+
+
+
+ Indicates which EDM-to-Database Mapping concept is represented by a given item.
+
+
+
+
+ Database Mapping Kind
+
+
+
+
+ Entity Container Mapping Kind
+
+
+
+
+ Entity Set Mapping Kind
+
+
+
+
+ Association Set Mapping Kind
+
+
+
+
+ Entity Type Mapping Kind
+
+
+
+
+ Query View Mapping Kind
+
+
+
+
+ Entity Type Mapping Fragment Kind
+
+
+
+
+ Edm Property Mapping Kind
+
+
+
+
+ Association End Mapping Kind
+
+
+
+
+ Column Condition Kind
+
+
+
+
+ Property Condition Kind
+
+
+
+
+ Allows the construction and modification of a constraint applied to an Entity Data Model (EDM) association.
+
+
+
+
+ The base for all all Entity Data Model (EDM) types that support annotation using .
+
+
+
+
+ EdmDataModelItem is the base for all types in the Entity Data Model (EDM) metadata construction and modification API.
+
+
+
+
+ Gets an value indicating which Entity Data Model (EDM) concept is represented by this item.
+
+
+
+
+ Gets or sets the currently assigned annotations.
+
+
+
+
+ Returns all EdmItem children directly contained by this EdmItem.
+
+
+
+
+ Gets or sets the that represents the 'dependent' end of the constraint; properties from this association end's entity type contribute to the collection.
+
+
+
+
+ Gets or sets the collection of instances from the of the constraint. The values of these properties are constrained against the primary key values of the remaining, 'principal' association end's entity type.
+
+
+
+
+ Allows the construction and modification of one end of an Entity Data Model (EDM) association.
+
+
+
+
+ EdmStructuralMember is the base for all types that represent members of structural items in the Entity Data Model (EDM) metadata construction and modification API.
+
+
+
+
+ The base for all all Entity Data Model (EDM) item types that with a property.
+
+
+
+
+ Gets or sets the currently assigned name.
+
+
+
+
+ Gets or sets the entity type referenced by this association end.
+
+
+
+
+ Gets or sets the of this association end, which indicates the multiplicity of the end and whether or not it is required.
+
+
+
+
+ Gets or sets the to take when a delete operation is attempted.
+
+
+
+
+ Indicates the multiplicity of an and whether or not it is required.
+
+
+
+
+ Allows the construction and modification of an association set in an Entity Data Model (EDM) ).
+
+
+
+
+ Represents an item in an Entity Data Model (EDM) .
+
+
+
+
+ Gets or sets the that specifies the association type for the set.
+
+
+
+
+ Gets or sets the that specifies the entity set corresponding to the association end for this association set.
+
+
+
+
+ Gets or sets the that specifies the entity set corresponding to the association end for this association set.
+
+
+
+
+
+ The base for all all Entity Data Model (EDM) types that represent a structured type from the EDM type system.
+
+
+
+
+ The base for all all Entity Data Model (EDM) types that represent a type from the EDM type system.
+
+
+
+
+ Represents an item in an Entity Data Model (EDM) .
+
+
+
+
+ The base for all all Entity Data Model (EDM) item types that with a Name property
+ that represents a qualified (can be dotted) name.
+
+
+
+
+ Gets a value indicating whether this type is abstract.
+
+
+
+
+ Gets the optional base type of this type.
+
+
+
+
+ Gets or sets the that defines the source end of the association.
+
+
+
+
+ Gets or sets the that defines the target end of the association.
+
+
+
+
+ Gets or sets the optional constraint that indicates whether the relationship is an independent association (no constraint present) or a foreign key relationship ( specified).
+
+
+
+
+ Collection semantics for properties.
+
+
+
+
+ The property does not have a collection type or does not specify explicit collection semantics.
+
+
+
+
+ The property is an unordered collection that may contain duplicates.
+
+
+
+
+ The property is an ordered collection that may contain duplicates.
+
+
+
+
+ Allows the construction and modification of a complex type in an Entity Data Model (EDM) .
+
+
+
+
+ Gets or sets the optional that indicates the base complex type of the complex type.
+
+
+
+
+ Gets or sets a value indicating whether the complex type is abstract.
+
+
+
+
+ Gets or sets the collection of instances that describe the (scalar or complex) properties of the complex type.
+
+
+
+
+ Concurrency mode for properties.
+
+
+
+
+ Default concurrency mode: the property is never validated
+ at write time
+
+
+
+
+ Fixed concurrency mode: the property is always validated at
+ write time
+
+
+
+
+ Allows the construction and modification of an entity container in an Entity Data Model (EDM) .
+
+
+
+
+ Gets all s declared within the namspace. Includes s and s.
+
+
+
+
+ Gets or sets the collection of s that specifies the association sets within the container.
+
+
+
+
+ Gets or sets the collection of s that specifies the entity sets within the container.
+
+
+
+
+ Allows the construction and modification of an entity set in an Entity Data Model (EDM) .
+
+
+
+
+ Gets or sets the that specifies the entity type for the set.
+
+
+
+
+ Allows the construction and modification of an entity type in an Entity Data Model (EDM) .
+
+
+
+
+ Gets or sets the optional that indicates the base entity type of the entity type.
+
+
+
+
+ Gets or sets a value indicating whether the entity type is abstract.
+
+
+
+
+ Gets or sets the collection of s that specifies the properties declared by the entity type.
+
+
+
+
+ Gets or sets the collection of s that indicates which properties from the collection are part of the entity key.
+
+
+
+
+ Gets or sets the optional collection of s that specifies the navigation properties declared by the entity type.
+
+
+
+
+ Indicates which Entity Data Model (EDM) concept is represented by a given item.
+
+
+
+
+ Association End Kind
+
+
+
+
+ Association Set Kind
+
+
+
+
+ Association Type Kind
+
+
+
+
+ Collection Type Kind
+
+
+
+
+ Complex Type Kind
+
+
+
+
+ Entity Container Kind
+
+
+
+
+ Entity Set Kind
+
+
+
+
+ Entity Type Kind
+
+
+
+
+ Function Group Kind
+
+
+
+
+ Function Overload Kind
+
+
+
+
+ Function Import Kind
+
+
+
+
+ Function Parameter Kind
+
+
+
+
+ Navigation Property Kind
+
+
+
+
+ EdmProperty Type Kind
+
+
+
+
+ Association Constraint Type Kind
+
+
+
+
+ Ref Type Kind
+
+
+
+
+ Row Column Kind
+
+
+
+
+ Row Type Kind
+
+
+
+
+ Type Reference Kind
+
+
+
+
+ Model Kind
+
+
+
+
+ Namespace Kind
+
+
+
+
+ Primitive Facets Kind
+
+
+
+
+ Primitive Type Kind
+
+
+
+
+ EdmModel is the top-level container for namespaces and entity containers belonging to the same logical Entity Data Model (EDM) model.
+
+
+
+
+ Gets or sets an optional value that indicates the entity model version.
+
+
+
+
+ Gets or sets the containers declared within the model.
+
+
+
+
+ Gets or sets the namespaces declared within the model.
+
+
+
+
+ Allows the construction and modification of a namespace in an .
+
+
+
+
+ Gets all s declared within the namspace. Includes s, s, s.
+
+
+
+
+ Gets or sets the s declared within the namespace.
+
+
+
+
+ Gets or sets the s declared within the namespace.
+
+
+
+
+ Gets or sets the s declared within the namespace.
+
+
+
+
+ Allows the construction and modification of an Entity Data Model (EDM) navigation property.
+
+
+
+
+ Gets or sets the that specifies the association over which navigation takes place.
+
+
+
+
+ Gets or sets the that specifies which association end is the 'destination' end of the navigation and produces the navigation property result.
+
+
+
+
+ Specifies the action to take on a given operation.
+
+
+
+
+
+ Default behavior
+
+
+
+
+ Restrict the operation
+
+
+
+
+ Cascade the operation
+
+
+
+
+ Represents one of the fixed set of Entity Data Model (EDM) primitive types.
+
+
+
+
+ The base for all all Entity Data Model (EDM) types that represent a scalar type from the EDM type system.
+
+
+
+
+ Retrieves the EdmPrimitiveType instance with the corresponding to the specified value, if any.
+
+ The name of the primitive type instance to retrieve
+ The EdmPrimitiveType with the specified name, if successful; otherwise null.
+ true if the given name corresponds to an EDM primitive type name; otherwise false.
+
+
+
+ Gets the EdmPrimitiveType instance that represents the primitive type.
+
+
+
+
+ Gets the EdmPrimitiveType instance that represents the primitive type.
+
+
+
+
+ Gets the EdmPrimitiveType instance that represents the primitive type.
+
+
+
+
+ Gets the EdmPrimitiveType instance that represents the primitive type.
+
+
+
+
+ Gets the EdmPrimitiveType instance that represents the primitive type.
+
+
+
+
+ Gets the EdmPrimitiveType instance that represents the primitive type.
+
+
+
+
+ Gets the EdmPrimitiveType instance that represents the primitive type.
+
+
+
+
+ Gets the EdmPrimitiveType instance that represents the primitive type.
+
+
+
+
+ Gets the EdmPrimitiveType instance that represents the primitive type.
+
+
+
+
+ Gets the EdmPrimitiveType instance that represents the primitive type.
+
+
+
+
+ Gets the EdmPrimitiveType instance that represents the primitive type.
+
+
+
+
+ Gets the EdmPrimitiveType instance that represents the primitive type.
+
+
+
+
+ Gets the EdmPrimitiveType instance that represents the primitive type.
+
+
+
+
+ Gets the EdmPrimitiveType instance that represents the primitive type.
+
+
+
+
+ Gets the EdmPrimitiveType instance that represents the primitive type.
+
+
+
+
+ Gets an value that indicates which Entity Data Model (EDM) primitive type this type represents.
+
+
+
+
+ Allows the construction and modification of additional constraints that can be applied to a specific use of a primitive type in an Entity Data Model (EDM) item. See .
+
+
+
+
+ Returns true if any facet value property currently has a non-null value; otherwise returns false.
+
+
+
+
+ Gets or sets an optional value indicating the current constraint on the type's maximum length.
+
+
+
+
+ Gets or sets an optional value indicating whether the referenced type should be considered to have its intrinsic maximum length, rather than a specific value.
+
+
+
+
+ Gets or sets an optional value indicating whether the referenced type should be considered to have a fixed or variable length.
+
+
+
+
+ Gets or sets an optional value indicating whether the referenced type should be considered to be Unicode or non-Unicode.
+
+
+
+
+ Gets or sets an optional value indicating the current constraint on the type's precision.
+
+
+
+
+ Gets or sets an optional value indicating the current constraint on the type's scale.
+
+
+
+
+ Primitive Types as defined by the Entity Data Model (EDM).
+
+
+
+
+ Binary Type Kind
+
+
+
+
+ Boolean Type Kind
+
+
+
+
+ Byte Type Kind
+
+
+
+
+ DateTime Type Kind
+
+
+
+
+ Decimal Type Kind
+
+
+
+
+ Double Type Kind
+
+
+
+
+ Guid Type Kind
+
+
+
+
+ Single Type Kind
+
+
+
+
+ SByte Type Kind
+
+
+
+
+ Int16 Type Kind
+
+
+
+
+ Int32 Type Kind
+
+
+
+
+ Int64 Type Kind
+
+
+
+
+ String Type Kind
+
+
+
+
+ Time Type Kind
+
+
+
+
+ DateTimeOffset Type Kind
+
+
+
+
+ Allows the construction and modification of a primitive- or complex-valued property of an Entity Data Model (EDM) entity or complex type.
+
+
+
+
+ Gets or sets an value that indicates which collection semantics - if any - apply to the property.
+
+
+
+
+ Gets or sets a value that indicates whether the property is used for concurrency validation.
+
+
+
+
+ Gets or sets on optional value that indicates an initial default value for the property.
+
+
+
+
+ Gets or sets an that specifies the result type of the property.
+
+
+
+
+ Enumerates all s declared or inherited by an .
+
+
+
+
+ Allows the construction and modification of a specific use of a type in an Entity Data Model (EDM) item. See for examples.
+
+
+
+
+ Gets or sets a value indicating the collection rank of the type reference. A collection rank greater than zero indicates that the type reference represents a collection of its referenced .
+
+
+
+
+ Gets or sets a value indicating the referenced by this type reference.
+
+
+
+
+ Gets or sets an optional value indicating whether the referenced type should be considered nullable.
+
+
+
+
+ Gets or sets an optional instance that applies additional constraints to a referenced primitive type.
+
+ Accessing this property forces the creation of an EdmPrimitiveTypeFacets value if no value has previously been set. Use to determine whether or not this property currently has a value.
+
+
+
+ Gets a value indicating whether the property of this type reference has been assigned an value with at least one facet value specified.
+
+
+
+
+ Indicates whether this type reference represents a collection of its referenced (when is greater than zero) or not.
+
+
+
+
+ Indicates whether the property of this type reference currently refers to an , is not a collection type, and does not have primitive facet values specified.
+
+
+
+
+ Gets the currently referred to by this type reference, or null if the type reference is a collection type or does not refer to a complex type.
+
+
+
+
+ Indicates whether the property of this type reference currently refers to an and is not a collection type.
+
+
+
+
+ Gets the currently referred to by this type reference, or null if the type reference is a collection type or does not refer to a primitive type.
+
+
+
+
+ Contains constant values that apply to the EDM model, regardless of source (for CSDL specific constants see ).
+
+
+
+
+ Parsing code taken from System.dll's System.CodeDom.Compiler.CodeGenerator.IsValidLanguageIndependentIdentifier(string)
+ method to avoid LinkDemand needed to call this method
+
+
+
+
+
+
+
+
+
+
+
+ Constants for CSDL XML.
+
+
+
+
+ Constants for C-S MSL XML.
+
+
+
+
+ Constants for SSDL XML.
+
+
+
+
+ The acceptable range for this enum is 0000 - 0999; the range 10,000-15,000 is reserved for tools.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Precision out of range
+
+
+ Scale out of range
+
+
+
+
+
+
+
+
+ One of the required facets is missing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The facet isn't allow by the property type.
+
+
+
+
+ This facet value is constant and is specified in the schema
+
+
+
+
+
+
+
+
+
+ Multiplicity value was malformed
+
+
+ The value for the Action attribute is invalid or not allowed in the current context
+
+
+ An error occurred processing the On<Operation> elements
+
+
+ Ends were given for the Property element of a EntityContainer that is not a RelationshipSet
+
+
+ The extent name used in the EntittyContainerType End does not match the name of any of the EntityContainerProperties in the containing EntityContainer
+
+
+ An end element was not given, and cannot be inferred because too many EntityContainerEntitySet elements that are good possibilities.
+
+
+ An end element was not given, and cannot be inferred because there is no EntityContainerEntitySets that are the correct type to be used as an EntitySet.
+
+
+ Not a valid parameter direction for the parameter in a function
+
+
+ Unable to infer an optional schema part, to resolve this; be more explicit
+
+
+ Invalid facet attribute(s) specified in provider manifest
+
+
+ Invalid role value in the relationship constraint
+
+
+ Invalid Property in relationship constraint
+
+
+ Type mismatch between ToProperty and FromProperty in the relationship constraint
+
+
+ Invalid multiplicity in FromRole in the relationship constraint
+
+
+ The number of properties in the FromProperty and ToProperty in the relationship constraint must be identical
+
+
+ No Properties defined in either FromProperty or ToProperty in the relationship constraint
+
+
+ Missing constraint in relationship type in ssdl
+
+
+ Same role referred in the ToRole and FromRole of a referential constraint
+
+
+ Invalid value for attribute ParameterTypeSemantics
+
+
+ Invalid type used for a Relationship End Type
+
+
+ Invalid PrimitiveTypeKind
+
+
+ Invalid TypeConversion DestinationType
+
+
+ Expected a integer value between 0 - 255
+
+
+ Invalid Type specified in function
+
+
+ Precision must not be greater than 28
+
+
+ Properties that are part of entity key must be of scalar type
+
+
+ Binary type properties which are part of entity key are currently not supported
+
+
+ The primitive type kind does not have a preferred mapping
+
+
+ More than one PreferredMapping for a PrimitiveTypeKind
+
+
+ End with * multiplicity cannot have operations specified
+
+
+ EntitySet type has no keys
+
+
+ InvalidNumberOfParametersForAggregateFunction
+
+
+ InvalidParameterTypeForAggregateFunction
+
+
+ Composable functions must declare a return type.
+
+
+ Non-composable functions must not declare a return type.
+
+
+ Non-composable functions do not permit the aggregate; niladic; or built-in attributes.
+
+
+ Composable functions can not include command text attribute.
+
+
+ Functions should not declare both a store name and command text (only one or the other
+ can be used).
+
+
+ SystemNamespace
+
+
+ Empty DefiningQuery text
+
+
+ Schema, Table and DefiningQuery are all specified, and are mutually exclusive
+
+
+ ConcurrencyMode value was malformed
+
+
+ Concurrency can't change for any sub types of an EntitySet type.
+
+
+ Function import return type must be either empty, a collection of entities, or a singleton scalar.
+
+
+ Function import specifies a non-existent entity set.
+
+
+ Function import specifies entity type return but no entity set.
+
+
+ Function import specifies entity type that does not derive from element type of entity set.
+
+
+ Function import specifies a binding to an entity set but does not return entities.
+
+
+ InternalError
+
+
+ Same Entity Set Taking part in the same role of the relationship set in two different relationship sets
+
+
+ Entity key refers to the same property twice
+
+
+ Function declares a ReturnType attribute and element
+
+
+ Nullable Complex Type not supported in Edm V1
+
+
+ Only Complex Collections supported in Edm V1.1
+
+
+ No Key defined on Entity Type
+
+
+ Invalid namespace specified in using element
+
+
+ Need not specify system namespace in using
+
+
+ Cannot use a reserved/system namespace as alias
+
+
+ Invalid qualification specified for type
+
+
+ Invalid Entity Container Name in extends attribute
+
+
+ Invalid CollectionKind value in property CollectionKind attribute
+
+
+ Must specify namespace or alias of the schema in which this type is defined
+
+
+ Entity Container cannot extend itself
+
+
+ Failed to retrieve provider manifest
+
+
+ Mismatched Provider Manifest token values in SSDL artifacts
+
+
+ Missing Provider Manifest token value in SSDL artifact(s)
+
+
+ Empty CommandText element
+
+
+ Inconsistent Provider values in SSDL artifacts
+
+
+ Inconsistent Provider Manifest token values in SSDL artifacts
+
+
+ Duplicated Function overloads
+
+
+ InvalidProvider
+
+
+ FunctionWithNonEdmTypeNotSupported
+
+
+ ComplexTypeAsReturnTypeAndDefinedEntitySet
+
+
+ ComplexTypeAsReturnTypeAndDefinedEntitySet
+
+
+ unused 179,
+ unused 180,
+ unused 181,
+ In model functions facet attribute is allowed only on ScalarTypes
+
+
+ Captures several conditions where facets are placed on element where it should not exist.
+
+
+ Return type has not been declared
+
+
+ Invalid value in the EnumTypeOption
+
+
+ The structural annotation cannot use codegen namespaces
+
+
+ Function and type cannot have the same fully qualified name
+
+
+ Cannot load different version of schema in the same ItemCollection
+
+
+ Expected bool value
+
+
+ End without Multiplicity specified
+
+
+ In SSDL, if composable function returns a collection of rows (TVF), all row properties must be of scalar types.
+
+
+ The name of NamedEdmItem must not be empty or white space only
+
+
+ EdmTypeReference is empty
+ Unused 199;
+
+
+
+ Serializes an that conforms to the restrictions of a single CSDL schema file to an XML writer.
+ The model to be serialized must contain a single and a single .
+
+
+
+
+ The CSDL Serializer for the EdmModel.
+
+
+
+
+ Serialize the to the XmlWriter.
+
+ The EdmModel to serialize, mut have only one and one
+ The XmlWriter to serialize to
+
+
+
+ MSL Serializer for DbModel
+
+
+
+
+ Serialize the to the XmlWriter
+
+ The DbModel to serialize
+ The XmlWriter to serialize to
+
+
+
+ SSDL Serializer for DbDatabaseMetadata
+
+
+
+
+ Serialize the to the
+
+ The DbDatabaseMetadata to serialize
+ Provider information on the Schema element
+ ProviderManifestToken information on the Schema element
+ The XmlWriter to serialize to
+
+
+
+ author/email
+
+
+ author/name
+
+
+ author/uri
+
+
+ published
+
+
+ rights
+
+
+ summary
+
+
+ title
+
+
+ contributor/email
+
+
+ contributor/name
+
+
+ contributor/uri
+
+
+ category/@label
+
+
+ Plaintext
+
+
+ HTML
+
+
+ XHTML
+
+
+ updated
+
+
+ link/@href
+
+
+ link/@rel
+
+
+ link/@type
+
+
+ link/@hreflang
+
+
+ link/@title
+
+
+ link/@length
+
+
+ category/@term
+
+
+ category/@scheme
+
+
+
+ Return role name pair
+
+
+
+
+
+
+
+ The context for DataModel Validation
+
+
+
+
+ Returns true if the given two ends are similar - the relationship type that this ends belongs to is the same
+ and the entity set refered by the ends are same and they are from the same role
+
+
+
+
+
+
+
+ Return true if the Referential Constraint on the association is ready for further validation, otherwise return false.
+
+
+
+
+
+
+ Resolves the given property names to the property in the item
+ Also checks whether the properties form the key for the given type and whether all the properties are nullable or not
+
+
+
+
+
+
+
+
+
+
+ Return true if the namespaceName is a Edm System Namespace
+
+
+
+
+
+
+ Return true if the entityType is a subtype of any entity type in the dictionary keys,
+ and return the corresponding entry EntitySet value. Otherwise return false.
+
+
+
+
+
+
+
+
+ Return true if any of the properties in the EdmEntityType defines ConcurrencyMode. Otherwise return false.
+
+
+
+
+
+
+ Add member name to the Hash set, raise an error if the name exists already.
+
+
+
+
+
+
+
+
+ If the string is null, empty, or only whitespace, return false, otherwise return true
+
+
+
+
+
+
+ Determine if a cycle exists in the type hierarchy: use two pointers to
+ walk the chain, if one catches up with the other, we have a cycle.
+
+ true if a cycle exists in the type hierarchy, false otherwise
+
+
+
+ RuleSet for DataModel Validation
+
+
+
+
+ Get the related rules given certain DataModelItem
+
+ The to validate
+ A collection of
+
+
+
+ Data Model Validator
+
+
+
+
+ Validate the and all of its properties given certain version.
+
+ The root of the model to be validated
+ True to validate the syntax, otherwise false
+
+
+
+ The RuleSet for EdmModel
+
+
+
+
+ Get based on version
+
+ a double value of version
+
+
+
+
+ The context for EdmModel Validation
+
+
+
+
+ Visitor for EdmModel Validation
+
+
+
+
+ Edm Model Validator
+
+
+
+
+ validate the from the root with the context
+
+ The root to validate from
+ The validation context
+
+
+
+ Strongly-typed and parameterized string resources.
+
+
+
+
+ A string like "The argument '{0}' cannot be null, empty or contain only white space."
+
+
+
+
+ A string like "The argument property '{0}' cannot be null."
+
+
+
+
+ A string like "The type '{0}' has already been configured as a complex type. It cannot be reconfigured as an entity type."
+
+
+
+
+ A string like "The type '{0}' has already been configured as an entity type. It cannot be reconfigured as a complex type."
+
+
+
+
+ A string like "The key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property."
+
+
+
+
+ A string like "The foreign key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property."
+
+
+
+
+ A string like "The property '{0}' is not a declared property on type '{1}'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property."
+
+
+
+
+ A string like "The navigation property '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property."
+
+
+
+
+ A string like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'."
+
+
+
+
+ A string like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. Use dotted paths for nested properties: C#: 't => t.MyProperty.MyProperty' VB.Net: 'Function(t) t.MyProperty.MyProperty'."
+
+
+
+
+ A string like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New From {{ t.MyProperty1, t.MyProperty2 }}'."
+
+
+
+
+ A string like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New From {{ t.MyProperty1, t.MyProperty2 }}'."
+
+
+
+
+
+ A string like "Conflicting configuration settings were specified for property '{0}' on type '{1}': {2}"
+
+
+
+
+ A string like "Conflicting configuration settings were specified for column '{0}' on table '{1}': {2}"
+
+
+
+
+ A string like "{0} = {1} conflicts with {2} = {3}"
+
+
+
+
+ A string like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from ComplexObject."
+
+
+
+
+ A string like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject."
+
+
+
+
+ A string like "The navigation property '{0}' declared on type '{1}' cannot be the inverse of itself."
+
+
+
+
+ A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting foreign keys."
+
+
+
+
+ A string like "Values of incompatible types ('{1}' and '{2}') were assigned to the '{0}' discriminator column. Values of the same type must be specified. To explicitly specify the type of the discriminator column use the HasColumnType method."
+
+
+
+
+ A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting mapping information."
+
+
+
+
+ A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting cascade delete operations using 'WillCascadeOnDelete'."
+
+
+
+
+ A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting multiplicities."
+
+
+
+
+ A string like "The MaxLengthAttribute on property '{0}' on type '{1} is not valid. The Length value must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length."
+
+
+
+
+ A string like "The StringLengthAttribute on property '{0}' on type '{1}' is not valid. The maximum length must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length."
+
+
+
+
+ A string like "Unable to determine composite primary key ordering for type '{0}'. Use the ColumnAttribute or the HasKey method to specify an order for composite primary keys."
+
+
+
+
+ A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. Name must not be empty."
+
+
+
+
+ A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The foreign key name '{2}' was not found on the dependent type '{3}'. The Name value should be a comma separated list of foreign key property names."
+
+
+
+
+ A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The navigation property '{2}' was not found on the dependent type '{1}'. The Name value should be a valid navigation property name."
+
+
+
+
+ A string like "Unable to determine a composite foreign key ordering for foreign key on type {0}. When using the ForeignKey data annotation on composite foreign key properties ensure order is specified by using the Column data annotation or the fluent API."
+
+
+
+
+ A string like "The InversePropertyAttribute on property '{2}' on type '{3}' is not valid. The property '{0}' is not a valid navigation property on the related type '{1}'. Ensure that the property exists and is a valid reference or collection navigation property."
+
+
+
+
+ A string like "A relationship cannot be established from property '{0}' on type '{1}' to property '{0}' on type '{1}'. Check the values in the InversePropertyAttribute to ensure relationship definitions are unique and reference from one navigation property to its corresponding inverse navigation property."
+
+
+
+
+ A string like "\t{0}: {1}: {2}"
+
+
+
+
+ A string like "A key is registered for the derived type '{0}'. Keys can only be registered for the root type '{1}'."
+
+
+
+
+ A string like "The {0} value '{1}' already exists in the user-defined dictionary."
+
+
+
+
+ A string like "The type '{0}' has already been mapped to table '{1}'. Specify all mapping aspects of a table in a single Map call."
+
+
+
+
+ A string like "Map was called more than once for type '{0}' and at least one of the calls didn't specify the target table name."
+
+
+
+
+ A string like "The derived type '{0}' has already been mapped using the chaining syntax. A derived type can only be mapped once using the chaining syntax."
+
+
+
+
+ A string like "An "is not null" condition cannot be specified on property '{0}' on type '{1}' because this property is not included in the model. Check that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation."
+
+
+
+
+ A string like "Values of type '{0}' cannot be used as type discriminator values. Supported types include byte, signed byte, bool, int16, int32, int64, and string."
+
+
+
+
+ A string like "Unable to add the convention '{0}'. Could not find an existing convention of type '{1}' in the current convention set."
+
+
+
+
+ A string like "Not all properties for type '{0}' have been mapped. Either map those properties or explicitly excluded them from the model."
+
+
+
+
+ A string like "Unable to determine the provider name for connection of type '{0}'."
+
+
+
+
+ A string like "The qualified table name '{0}' contains an invalid schema name. Schema names must have a non-zero length."
+
+
+
+
+ A string like "The qualified table name '{0}' contains an invalid table name. Table names must have a non-zero length."
+
+
+
+
+ A string like "Properties for type '{0}' can only be mapped once. Ensure the MapInheritedProperties method is only used during one call to the Map method."
+
+
+
+
+ A string like "Properties for type '{0}' can only be mapped once. Ensure the Properties method is used and that repeated calls specify each non-key property only once."
+
+
+
+
+ A string like "Properties for type '{0}' can only be mapped once. The non-key property '{1}' is mapped more than once. Ensure the Properties method specifies each non-key property only once."
+
+
+
+
+ A string like "The property '{1}' on type '{0}' cannot be mapped because it has been explicitly excluded from the model."
+
+
+
+
+ A string like "The entity types '{0}' and '{1}' cannot share table '{2}' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them."
+
+
+
+
+ A string like "The property '{0}' cannot be used as a key property on the entity '{1}' because the property type is not a valid key type. Only scalar types, string and byte[] are supported key types."
+
+
+
+
+ A string like "The specified table '{0}' was not found in the model. Ensure that the table name has been correctly specified."
+
+
+
+
+ A string like "The specified association foreign key columns '{0}' are invalid. The number of columns specified must match the number of primary key columns."
+
+
+
+
+ A string like "Unable to determine the principal end of an association between the types '{0}' and '{1}'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations."
+
+
+
+
+ A string like "The abstract type '{0}' has no mapped descendents and so cannot be mapped. Either remove '{0}' from the model or add one or more types deriving from '{0}' to the model. "
+
+
+
+
+ A string like "The type '{0}' cannot be mapped as defined because it maps inherited properties from types that use entity splitting or another form of inheritance. Either choose a different inheritance mapping strategy so as to not map inherited properties, or change all types in the hierarchy to map inherited properties and to not use splitting. "
+
+
+
+
+ A string like "One or more validation errors were detected during model generation:"
+
+
+
+
+ A string like "A circular ComplexType hierarchy was detected. Self-referencing ComplexTypes are not supported."
+
+
+
+
+ Strongly-typed and parameterized exception factory.
+
+
+
+
+ ArgumentException with message like "The argument '{0}' cannot be null, empty or contain only white space."
+
+
+
+
+ ArgumentException with message like "The argument property '{0}' cannot be null."
+
+
+
+
+ InvalidOperationException with message like "The type '{0}' has already been configured as a complex type. It cannot be reconfigured as an entity type."
+
+
+
+
+ InvalidOperationException with message like "The type '{0}' has already been configured as an entity type. It cannot be reconfigured as a complex type."
+
+
+
+
+ InvalidOperationException with message like "The key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property."
+
+
+
+
+ InvalidOperationException with message like "The foreign key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property."
+
+
+
+
+ InvalidOperationException with message like "The property '{0}' is not a declared property on type '{1}'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property."
+
+
+
+
+ InvalidOperationException with message like "The navigation property '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property."
+
+
+
+
+ InvalidOperationException with message like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'."
+
+
+
+
+ InvalidOperationException with message like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. Use dotted paths for nested properties: C#: 't => t.MyProperty.MyProperty' VB.Net: 'Function(t) t.MyProperty.MyProperty'."
+
+
+
+
+ InvalidOperationException with message like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New From {{ t.MyProperty1, t.MyProperty2 }}'."
+
+
+
+
+ InvalidOperationException with message like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New From {{ t.MyProperty1, t.MyProperty2 }}'."
+
+
+
+
+
+ InvalidOperationException with message like "Conflicting configuration settings were specified for property '{0}' on type '{1}': {2}"
+
+
+
+
+ InvalidOperationException with message like "Conflicting configuration settings were specified for column '{0}' on table '{1}': {2}"
+
+
+
+
+ InvalidOperationException with message like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from ComplexObject."
+
+
+
+
+ InvalidOperationException with message like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject."
+
+
+
+
+ InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' cannot be the inverse of itself."
+
+
+
+
+ InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting foreign keys."
+
+
+
+
+ MappingException with message like "Values of incompatible types ('{1}' and '{2}') were assigned to the '{0}' discriminator column. Values of the same type must be specified. To explicitly specify the type of the discriminator column use the HasColumnType method."
+
+
+
+
+ InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting mapping information."
+
+
+
+
+ InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting cascade delete operations using 'WillCascadeOnDelete'."
+
+
+
+
+ InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting multiplicities."
+
+
+
+
+ InvalidOperationException with message like "The MaxLengthAttribute on property '{0}' on type '{1} is not valid. The Length value must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length."
+
+
+
+
+ InvalidOperationException with message like "The StringLengthAttribute on property '{0}' on type '{1}' is not valid. The maximum length must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length."
+
+
+
+
+ InvalidOperationException with message like "Unable to determine composite primary key ordering for type '{0}'. Use the ColumnAttribute or the HasKey method to specify an order for composite primary keys."
+
+
+
+
+ InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. Name must not be empty."
+
+
+
+
+ InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The foreign key name '{2}' was not found on the dependent type '{3}'. The Name value should be a comma separated list of foreign key property names."
+
+
+
+
+ InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The navigation property '{2}' was not found on the dependent type '{1}'. The Name value should be a valid navigation property name."
+
+
+
+
+ InvalidOperationException with message like "Unable to determine a composite foreign key ordering for foreign key on type {0}. When using the ForeignKey data annotation on composite foreign key properties ensure order is specified by using the Column data annotation or the fluent API."
+
+
+
+
+ InvalidOperationException with message like "The InversePropertyAttribute on property '{2}' on type '{3}' is not valid. The property '{0}' is not a valid navigation property on the related type '{1}'. Ensure that the property exists and is a valid reference or collection navigation property."
+
+
+
+
+ InvalidOperationException with message like "A relationship cannot be established from property '{0}' on type '{1}' to property '{0}' on type '{1}'. Check the values in the InversePropertyAttribute to ensure relationship definitions are unique and reference from one navigation property to its corresponding inverse navigation property."
+
+
+
+
+ InvalidOperationException with message like "A key is registered for the derived type '{0}'. Keys can only be registered for the root type '{1}'."
+
+
+
+
+ InvalidOperationException with message like "The type '{0}' has already been mapped to table '{1}'. Specify all mapping aspects of a table in a single Map call."
+
+
+
+
+ InvalidOperationException with message like "Map was called more than once for type '{0}' and at least one of the calls didn't specify the target table name."
+
+
+
+
+ InvalidOperationException with message like "The derived type '{0}' has already been mapped using the chaining syntax. A derived type can only be mapped once using the chaining syntax."
+
+
+
+
+ InvalidOperationException with message like "An "is not null" condition cannot be specified on property '{0}' on type '{1}' because this property is not included in the model. Check that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation."
+
+
+
+
+ ArgumentException with message like "Values of type '{0}' cannot be used as type discriminator values. Supported types include byte, signed byte, bool, int16, int32, int64, and string."
+
+
+
+
+ InvalidOperationException with message like "Unable to add the convention '{0}'. Could not find an existing convention of type '{1}' in the current convention set."
+
+
+
+
+ InvalidOperationException with message like "Not all properties for type '{0}' have been mapped. Either map those properties or explicitly excluded them from the model."
+
+
+
+
+ NotSupportedException with message like "Unable to determine the provider name for connection of type '{0}'."
+
+
+
+
+ ArgumentException with message like "The qualified table name '{0}' contains an invalid schema name. Schema names must have a non-zero length."
+
+
+
+
+ ArgumentException with message like "The qualified table name '{0}' contains an invalid table name. Table names must have a non-zero length."
+
+
+
+
+ InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. Ensure the MapInheritedProperties method is only used during one call to the Map method."
+
+
+
+
+ InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. Ensure the Properties method is used and that repeated calls specify each non-key property only once."
+
+
+
+
+ InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. The non-key property '{1}' is mapped more than once. Ensure the Properties method specifies each non-key property only once."
+
+
+
+
+ InvalidOperationException with message like "The property '{1}' on type '{0}' cannot be mapped because it has been explicitly excluded from the model."
+
+
+
+
+ InvalidOperationException with message like "The entity types '{0}' and '{1}' cannot share table '{2}' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them."
+
+
+
+
+ InvalidOperationException with message like "The property '{0}' cannot be used as a key property on the entity '{1}' because the property type is not a valid key type. Only scalar types, string and byte[] are supported key types."
+
+
+
+
+ InvalidOperationException with message like "The specified table '{0}' was not found in the model. Ensure that the table name has been correctly specified."
+
+
+
+
+ InvalidOperationException with message like "The specified association foreign key columns '{0}' are invalid. The number of columns specified must match the number of primary key columns."
+
+
+
+
+ InvalidOperationException with message like "A circular ComplexType hierarchy was detected. Self-referencing ComplexTypes are not supported."
+
+
+
+
+ InvalidOperationException with message like "Unable to determine the principal end of an association between the types '{0}' and '{1}'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations."
+
+
+
+
+ InvalidOperationException with message like "The abstract type '{0}' has no mapped descendents and so cannot be mapped. Either remove '{0}' from the model or add one or more types deriving from '{0}' to the model. "
+
+
+
+
+ NotSupportedException with message like "The type '{0}' cannot be mapped as defined because it maps inherited properties from types that use entity splitting or another form of inheritance. Either choose a different inheritance mapping strategy so as to not map inherited properties, or change all types in the hierarchy to map inherited properties and to not use splitting. "
+
+
+
+
+ The exception that is thrown when a null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument.
+
+
+
+
+ The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method.
+
+
+
+
+ The exception that is thrown when the author has yet to implement the logic at this point in the program. This can act as an exception based TODO tag.
+
+
+
+
+ The exception that is thrown when an invoked method is not supported, or when there is an attempt to read, seek, or write to a stream that does not support the invoked functionality.
+
+
+
+
+ Strongly-typed and parameterized string resources.
+
+
+
+
+ A string like "Cannot get value for property '{0}' from entity of type '{1}' because the property has no get accessor."
+
+
+
+
+ A string like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor."
+
+
+
+
+
+ A string like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor and is in the '{2}' state."
+
+
+
+
+ A string like "Member '{0}' cannot be called for property '{1}' on entity of type '{2}' because the property is not part of the Entity Data Model."
+
+
+
+
+
+ A string like "Cannot call the {0} method for an entity of type '{1}' on a DbSet for entities of type '{2}'. Only entities of type '{2}' or derived from type '{2}' can be added, attached, or removed."
+
+
+
+
+ A string like "Cannot call the Create method for the type '{0}' on a DbSet for entities of type '{1}'. Only entities of type '{1}' or derived from type '{1}' can be created."
+
+
+
+
+
+
+ A string like "The property '{0}' on type '{1}' is a collection navigation property. The Collection method should be used instead of the Reference method."
+
+
+
+
+ A string like "The property '{0}' on type '{1}' is a reference navigation property. The Reference method should be used instead of the Collection method."
+
+
+
+
+ A string like "The property '{0}' on type '{1}' is not a navigation property. The Reference and Collection methods can only be used with navigation properties. Use the Property or ComplexProperty method."
+
+
+
+
+ A string like "The property '{0}' on type '{1}' is not a primitive or complex property. The Property method can only be used with primitive or complex properties. Use the Reference or Collection method."
+
+
+
+
+ A string like "The property '{0}' on type '{1}' is not a complex property. The ComplexProperty method can only be used with complex properties. Use the Property, Reference or Collection method."
+
+
+
+
+ A string like "The property '{0}' on type '{1}' is not a primitive property, complex property, collection navigation property, or reference navigation property."
+
+
+
+
+ A string like ""The property '{0}' from the property path '{1}' is not a complex property on type '{2}'. Property paths must be composed of complex properties for all except the final property.""
+
+
+
+
+ A string like ""The property path '{0}' cannot be used for navigation properties. Property paths can only be used to access primitive or complex properties.""
+
+
+
+
+ A string like "The navigation property '{0}' on entity type '{1}' cannot be used for entities of type '{2}' because it refers to entities of type '{3}'."
+
+
+
+
+ A string like "The generic type argument '{0}' cannot be used with the Member method when accessing the collection navigation property '{1}' on entity type '{2}'. The generic type argument '{3}' must be used instead."
+
+
+
+
+ A string like "The property '{0}' on entity type '{1}' cannot be used for objects of type '{2}' because it is a property for objects of type '{3}'."
+
+
+
+
+ A string like "The expression passed to method {0} must represent a property defined on the type '{1}'."
+
+
+
+
+ A string like "{0} cannot be used for entities in the {1} state."
+
+
+
+
+ A string like "Cannot set non-nullable property '{0}' of type '{1}' to null on object of type '{2}'."
+
+
+
+
+ A string like "The property '{0}' in the entity of type '{1}' is null. Store values cannot be obtained for an entity with a null complex property."
+
+
+
+
+ A string like "Cannot assign value of type '{0}' to property '{1}' of type '{2}' in property values for type '{3}'."
+
+
+
+
+ A string like "The '{0}' property does not exist or is not mapped for the type '{1}'."
+
+
+
+
+ A string like "Cannot copy values from DbPropertyValues for type '{0}' into DbPropertyValues for type '{1}'."
+
+
+
+
+ A string like "Cannot copy from property values for object of type '{0}' into property values for object of type '{1}'."
+
+
+
+
+ A string like "The value of the complex property '{0}' on entity of type '{1}' is null. Complex properties cannot be set to null and values cannot be set for null complex properties."
+
+
+
+
+ A string like "The value of the nested property values property '{0}' on the values for entity of type '{1}' is null. Nested property values cannot be set to null and values cannot be set for null complex properties."
+
+
+
+
+ A string like "The model backing the '{0}' context has changed since the database was created. Either manually delete/update the database, or call Database.SetInitializer with an IDatabaseInitializer instance. For example, the DropCreateDatabaseIfModelChanges strategy will automatically delete and recreate the database, and optionally seed it with new data."
+
+
+
+
+ A string like "The DbContextDatabaseInitializer entry 'key="{0}" value="{1}"' in the application configuration is not valid. Entries should be of the form 'key="DatabaseInitializerForType MyNamespace.MyDbContextClass, MyAssembly" value="MyNamespace.MyInitializerClass, MyAssembly"' or 'key="DatabaseInitializerForType MyNamespace.MyDbContextClass, MyAssembly" value="Disabled"'."
+
+
+
+
+ A string like "Failed to set database initializer of type '{0}' for DbContext type '{1}' specified in the application configuration. Entries should be of the form 'key="DatabaseInitializerForType MyNamespace.MyDbContextClass, MyAssembly" value="MyNamespace.MyInitializerClass, MyAssembly"' or 'key="DatabaseInitializerForType MyNamespace.MyDbContextClass, MyAssembly" value="Disabled"'. The initializer class must have a parameterless constructor. See inner exception for details."
+
+
+
+
+ A string like "The type '{0}' could not be found. The type name must be an assembly-qualified name."
+
+
+
+
+ A string like "The connection string '{0}' in the application's configuration file does not contain the required providerName attribute.""
+
+
+
+
+ A string like "The entity found was of type {0} when an entity of type {1} was requested."
+
+
+
+
+ A string like "The type '{0}' is mapped as a complex type. The Set method, DbSet objects, and DbEntityEntry objects can only be used with entity types, not complex types."
+
+
+
+
+ A string like "The type '{0}' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute."
+
+
+
+
+ A string like "The entity type {0} is not part of the model for the current context."
+
+
+
+
+ A string like "No connection string named '{0}' could be found in the application config file."
+
+
+
+
+ A string like "The collection navigation property '{0}' on the entity of type '{1}' cannot be set because the entity type does not define a navigation property with a set accessor."
+
+
+
+
+ A string like "Multiple object sets per type are not supported. The object sets '{0}' and '{1}' can both contain instances of type '{2}'."
+
+
+
+
+ A string like "The context type '{0}' must have a public constructor taking an EntityConnection."
+
+
+
+
+ A string like "An unexpected exception was thrown during validation of '{0}' when invoking {1}.IsValid. See the inner exception for details."
+
+
+
+
+ A string like "An unexpected exception was thrown during validation of '{0}' when invoking {1}.Validate. See the inner exception for details."
+
+
+
+
+ A string like "The database name '{0}' is not supported because it is an MDF file name. A full connection string must be provided to attach an MDF file."
+
+
+
+
+ A string like "Setting IsModified to false for a modified property is not supported."
+
+
+
+
+ A string like "An error occurred while saving entities that do not expose foreign key properties for their relationships. The EntityEntries property will return null because a single entity cannot be identified as the source of the exception. Handling of exceptions while saving can be made easier by exposing foreign key properties in your entity types. See the InnerException for details."
+
+
+
+
+ A string like "The set of property value names is read-only."
+
+
+
+
+ A string like "A property of a complex type must be set to an instance of the generic or non-generic DbPropertyValues class for that type."
+
+
+
+
+ A string like "Model compatibility cannot be checked because the DbContext instance was not created using Code First patterns. DbContext instances created from an ObjectContext or using an EDMX file cannot be checked for compatibility."
+
+
+
+
+ A string like "Model compatibility cannot be checked because the EdmMetadata type was not included in the model. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions."
+
+
+
+
+ A string like "Model compatibility cannot be checked because the database does not contain model metadata. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions."
+
+
+
+
+ A string like "The context cannot be used while the model is being created."
+
+
+
+
+ A string like "The DbContext class cannot be used with models that have multiple entity sets per type (MEST)."
+
+
+
+
+ A string like "The operation cannot be completed because the DbContext has been disposed."
+
+
+
+
+ A string like "The provider factory returned a null connection."
+
+
+
+
+ A string like "The DbConnectionFactory instance returned a null connection."
+
+
+
+
+ A string like "The number of primary key values passed must match number of primary key values defined on the entity."
+
+
+
+
+ A string like "The type of one of the primary key values did not match the type defined in the entity. See inner exception for details."
+
+
+
+
+ A string like "Multiple entities were found in the Added state that match the given primary key values."
+
+
+
+
+ A string like "Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList()."
+
+
+
+
+ A string like "The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties."
+
+
+
+
+ A string like "Cannot initialize a DbContext from an entity connection string or an EntityConnection instance together with a DbCompiledModel. If an entity connection string or EntityConnection instance is used, then the model will be created from the metadata in the connection. If a DbCompiledModel is used, then the connection supplied should be a standard database connection (for example, a SqlConnection instance) rather than an entity connection."
+
+
+
+
+ A string like "Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used."
+
+
+
+
+ A string like "Validation failed for one or more entities. See 'EntityValidationErrors' property for more details."
+
+
+
+
+ A string like "An exception occurred while initializing the database. See the InnerException for details."
+
+
+
+
+ A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing ObjectContext is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel."
+
+
+
+
+ A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing DbCompiledModel is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel."
+
+
+
+
+ A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel."
+
+
+
+
+ A string like "Code generated using the T4 templates for Database First and Model First development may not work correctly if used in Code First mode. To continue using Database First or Model First ensure that the Entity Framework connection string is specified in the config file of executing application. To use these classes, that were generated from Database First or Model First, with Code First add any additional configuration using attributes or the DbModelBuilder API and then remove the code that throws this exception."
+
+
+
+
+ Strongly-typed and parameterized exception factory.
+
+
+
+
+ InvalidOperationException with message like "Cannot get value for property '{0}' from entity of type '{1}' because the property has no get accessor."
+
+
+
+
+ InvalidOperationException with message like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor."
+
+
+
+
+
+ NotSupportedException with message like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor and is in the '{2}' state."
+
+
+
+
+ InvalidOperationException with message like "Member '{0}' cannot be called for property '{1}' on entity of type '{2}' because the property is not part of the Entity Data Model."
+
+
+
+
+
+ ArgumentException with message like "Cannot call the {0} method for an entity of type '{1}' on a DbSet for entities of type '{2}'. Only entities of type '{2}' or derived from type '{2}' can be added, attached, or removed."
+
+
+
+
+ ArgumentException with message like "Cannot call the Create method for the type '{0}' on a DbSet for entities of type '{1}'. Only entities of type '{1}' or derived from type '{1}' can be created."
+
+
+
+
+
+
+ ArgumentException with message like "The property '{0}' on type '{1}' is a collection navigation property. The Collection method should be used instead of the Reference method."
+
+
+
+
+ ArgumentException with message like "The property '{0}' on type '{1}' is a reference navigation property. The Reference method should be used instead of the Collection method."
+
+
+
+
+ ArgumentException with message like "The property '{0}' on type '{1}' is not a navigation property. The Reference and Collection methods can only be used with navigation properties. Use the Property or ComplexProperty method."
+
+
+
+
+ ArgumentException with message like "The property '{0}' on type '{1}' is not a primitive or complex property. The Property method can only be used with primitive or complex properties. Use the Reference or Collection method."
+
+
+
+
+ ArgumentException with message like "The property '{0}' on type '{1}' is not a complex property. The ComplexProperty method can only be used with complex properties. Use the Property, Reference or Collection method."
+
+
+
+
+ ArgumentException with message like "The property '{0}' on type '{1}' is not a primitive property, complex property, collection navigation property, or reference navigation property."
+
+
+
+
+ ArgumentException with message like ""The property '{0}' from the property path '{1}' is not a complex property on type '{2}'. Property paths must be composed of complex properties for all except the final property.""
+
+
+
+
+ ArgumentException with message like ""The property path '{0}' cannot be used for navigation properties. Property paths can only be used to access primitive or complex properties.""
+
+
+
+
+ ArgumentException with message like "The navigation property '{0}' on entity type '{1}' cannot be used for entities of type '{2}' because it refers to entities of type '{3}'."
+
+
+
+
+ ArgumentException with message like "The generic type argument '{0}' cannot be used with the Member method when accessing the collection navigation property '{1}' on entity type '{2}'. The generic type argument '{3}' must be used instead."
+
+
+
+
+ ArgumentException with message like "The property '{0}' on entity type '{1}' cannot be used for objects of type '{2}' because it is a property for objects of type '{3}'."
+
+
+
+
+ NotSupportedException with message like "Setting IsModified to false for a modified property is not supported."
+
+
+
+
+ ArgumentException with message like "The expression passed to method {0} must represent a property defined on the type '{1}'."
+
+
+
+
+ InvalidOperationException with message like "{0} cannot be used for entities in the {1} state."
+
+
+
+
+ InvalidOperationException with message like "Cannot set non-nullable property '{0}' of type '{1}' to null on object of type '{2}'."
+
+
+
+
+ InvalidOperationException with message like "The property '{0}' in the entity of type '{1}' is null. Store values cannot be obtained for an entity with a null complex property."
+
+
+
+
+ InvalidOperationException with message like "Cannot assign value of type '{0}' to property '{1}' of type '{2}' in property values for type '{3}'."
+
+
+
+
+ NotSupportedException with message like "The set of property value names is read-only."
+
+
+
+
+ ArgumentException with message like "The '{0}' property does not exist or is not mapped for the type '{1}'."
+
+
+
+
+ ArgumentException with message like "Cannot copy values from DbPropertyValues for type '{0}' into DbPropertyValues for type '{1}'."
+
+
+
+
+ ArgumentException with message like "Cannot copy from property values for object of type '{0}' into property values for object of type '{1}'."
+
+
+
+
+ ArgumentException with message like "A property of a complex type must be set to an instance of the generic or non-generic DbPropertyValues class for that type."
+
+
+
+
+ InvalidOperationException with message like "The value of the complex property '{0}' on entity of type '{1}' is null. Complex properties cannot be set to null and values cannot be set for null complex properties."
+
+
+
+
+ InvalidOperationException with message like "The value of the nested property values property '{0}' on the values for entity of type '{1}' is null. Nested property values cannot be set to null and values cannot be set for null complex properties."
+
+
+
+
+ InvalidOperationException with message like "The model backing the '{0}' context has changed since the database was created. Either manually delete/update the database, or call Database.SetInitializer with an IDatabaseInitializer instance. For example, the DropCreateDatabaseIfModelChanges strategy will automatically delete and recreate the database, and optionally seed it with new data."
+
+
+
+
+ NotSupportedException with message like "Model compatibility cannot be checked because the DbContext instance was not created using Code First patterns. DbContext instances created from an ObjectContext or using an EDMX file cannot be checked for compatibility."
+
+
+
+
+ NotSupportedException with message like "Model compatibility cannot be checked because the EdmMetadata type was not included in the model. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions."
+
+
+
+
+ NotSupportedException with message like "Model compatibility cannot be checked because the database does not contain model metadata. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions."
+
+
+
+
+ InvalidOperationException with message like "The DbContextDatabaseInitializer entry 'key="{0}" value="{1}"' in the application configuration is not valid. Entries should be of the form 'key="DatabaseInitializerForType MyNamespace.MyDbContextClass, MyAssembly" value="MyNamespace.MyInitializerClass, MyAssembly"' or 'key="DatabaseInitializerForType MyNamespace.MyDbContextClass, MyAssembly" value="Disabled"'."
+
+
+
+
+ InvalidOperationException with message like "Failed to set database initializer of type '{0}' for DbContext type '{1}' specified in the application configuration. Entries should be of the form 'key="DatabaseInitializerForType MyNamespace.MyDbContextClass, MyAssembly" value="MyNamespace.MyInitializerClass, MyAssembly"' or 'key="DatabaseInitializerForType MyNamespace.MyDbContextClass, MyAssembly" value="Disabled"'. The initializer class must have a parameterless constructor. See inner exception for details."
+
+
+
+
+ InvalidOperationException with message like "The type '{0}' could not be found. The type name must be an assembly-qualified name."
+
+
+
+
+ InvalidOperationException with message like "The context cannot be used while the model is being created."
+
+
+
+
+ InvalidOperationException with message like "The DbContext class cannot be used with models that have multiple entity sets per type (MEST)."
+
+
+
+
+ InvalidOperationException with message like "The operation cannot be completed because the DbContext has been disposed."
+
+
+
+
+ InvalidOperationException with message like "The provider factory returned a null connection."
+
+
+
+
+ InvalidOperationException with message like "The connection string '{0}' in the application's configuration file does not contain the required providerName attribute.""
+
+
+
+
+ InvalidOperationException with message like "The DbConnectionFactory instance returned a null connection."
+
+
+
+
+ ArgumentException with message like "The number of primary key values passed must match number of primary key values defined on the entity."
+
+
+
+
+ ArgumentException with message like "The type of one of the primary key values did not match the type defined in the entity. See inner exception for details."
+
+
+
+
+ InvalidOperationException with message like "The entity found was of type {0} when an entity of type {1} was requested."
+
+
+
+
+ InvalidOperationException with message like "Multiple entities were found in the Added state that match the given primary key values."
+
+
+
+
+ InvalidOperationException with message like "The type '{0}' is mapped as a complex type. The Set method, DbSet objects, and DbEntityEntry objects can only be used with entity types, not complex types."
+
+
+
+
+ InvalidOperationException with message like "The type '{0}' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute."
+
+
+
+
+ InvalidOperationException with message like "The entity type {0} is not part of the model for the current context."
+
+
+
+
+ NotSupportedException with message like "Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList()."
+
+
+
+
+ ArgumentException with message like "The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties."
+
+
+
+
+ InvalidOperationException with message like "No connection string named '{0}' could be found in the application config file."
+
+
+
+
+ InvalidOperationException with message like "Cannot initialize a DbContext from an entity connection string or an EntityConnection instance together with a DbCompiledModel. If an entity connection string or EntityConnection instance is used, then the model will be created from the metadata in the connection. If a DbCompiledModel is used, then the connection supplied should be a standard database connection (for example, a SqlConnection instance) rather than an entity connection."
+
+
+
+
+ NotSupportedException with message like "The collection navigation property '{0}' on the entity of type '{1}' cannot be set because the entity type does not define a navigation property with a set accessor."
+
+
+
+
+ NotSupportedException with message like "Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used."
+
+
+
+
+ InvalidOperationException with message like "Multiple object sets per type are not supported. The object sets '{0}' and '{1}' can both contain instances of type '{2}'."
+
+
+
+
+ InvalidOperationException with message like "The context type '{0}' must have a public constructor taking an EntityConnection."
+
+
+
+
+ NotSupportedException with message like "The database name '{0}' is not supported because it is an MDF file name. A full connection string must be provided to attach an MDF file."
+
+
+
+
+ DataException with message like "An exception occurred while initializing the database. See the InnerException for details."
+
+
+
+
+ NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing ObjectContext is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel."
+
+
+
+
+ NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing DbCompiledModel is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel."
+
+
+
+
+ NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel."
+
+
+
+
+ The exception that is thrown when a null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument.
+
+
+
+
+ The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method.
+
+
+
+
+ The exception that is thrown when the author has yet to implement the logic at this point in the program. This can act as an exception based TODO tag.
+
+
+
+
+ The exception that is thrown when an invoked method is not supported, or when there is an attempt to read, seek, or write to a stream that does not support the invoked functionality.
+
+
+
+
+ Strongly-typed and parameterized string resources.
+
+
+
+
+ A string like "The field {0} must be a string or array type with a maximum length of '{1}'."
+
+
+
+
+ A string like "The field {0} must be a string or array type with a minimum length of '{1}'."
+
+
+
+
+ A string like "The argument '{0}' cannot be null, empty or contain only white space."
+
+
+
+
+ A string like "MaxLengthAttribute must have a Length value that is greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length."
+
+
+
+
+ A string like "MinLengthAttribute must have a Length value that is zero or greater."
+
+
+
+
+ Strongly-typed and parameterized exception factory.
+
+
+
+
+ InvalidOperationException with message like "MaxLengthAttribute must have a Length value that is greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length."
+
+
+
+
+ InvalidOperationException with message like "MinLengthAttribute must have a Length value that is zero or greater."
+
+
+
+
+ ArgumentException with message like "The argument '{0}' cannot be null, empty or contain only white space."
+
+
+
+
+ The exception that is thrown when a null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument.
+
+
+
+
+ The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method.
+
+
+
+
+ The exception that is thrown when the author has yet to implement the logic at this point in the program. This can act as an exception based TODO tag.
+
+
+
+
+ The exception that is thrown when an invoked method is not supported, or when there is an attempt to read, seek, or write to a stream that does not support the invoked functionality.
+
+
+
+
+ Gets or sets an value representing the model that is being mapped.
+
+
+
+
+ Gets or sets a value representing the database that is the target of the mapping.
+
+
+
+
+ Gets or sets the collection of s that specifies how the model's entity containers are mapped to the database.
+
+
+
+
+ This convention uses the name of the derived
+ class as the container for the conceptual model built by
+ Code First.
+
+
+
+
+ Identifies conventions that can be removed from a instance.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The model container name.
+
+
+
+ Applies the convention to the given model.
+
+ The model.
+
+
+
+ This convention uses the namespace of the derived
+ class as the namespace of the conceptual model built by
+ Code First.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The model namespace.
+
+
+
+ Applies the convention to the given model.
+
+ The model.
+
+
+
+ Thrown when a context is generated from the templates in Database First or Model
+ First mode and is then used in Code First mode.
+
+
+ Code generated using the T4 templates provided for Database First and Model First use may not work
+ correctly if used in Code First mode. To use these classes with Code First please add any additional
+ configuration using attributes or the DbModelBuilder API and then remove the code that throws this
+ exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The object that holds the serialized object data.
+ The contextual information about the source or destination.
+
+
+
+ Initializes a new instance of the class.
+
+ The message.
+
+
+
+ Initializes a new instance of the class.
+
+ The message.
+ The inner exception.
+
+
+
+ Adapted from to allow the initializer to take an input object and
+ to do one-time initialization that only has side-effects and doesn't return a value.
+
+ The type of the input.
+
+
+
+ Initializes a new instance of the class.
+
+ The action.
+
+
+
+ Performs the action unless it has already been successfully performed before.
+
+ The input to the action; ignored if the action has already succeeded.
+
+
+
+ Adapted from to allow the initializer to take an input object and
+ to retry initialization if it has previously failed.
+
+
+ This class can only be used to initialize reference types that will not be null when
+ initialized.
+
+ The type of the input.
+ The type of the result.
+
+
+
+ Initializes a new instance of the class.
+
+ The value factory.
+
+
+
+ Gets the value, possibly by running the initializer if it has not been run before or
+ if all previous times it ran resulted in exceptions.
+
+ The input to the initializer; ignored if initialization has already succeeded.
+ The initialized object.
+
+
+
+ Abstracts simple validators used to validate entities and properties.
+
+
+
+
+ Validates an entity or a property.
+
+ Validation context. Never null.
+ Property to validate. Can be null for type level validation.
+ Validation error as. Empty if no errors. Never null.
+
+
+
+
+ Contracts for interface.
+
+
+
+
+ Contract for IValidator.Validate method.
+
+ Validation context.
+ Property.
+ Nothing - always throws.
+
+
+
+ Indicates what parts of a configuration are overridable.
+
+
+
+
+ Nothing in the configuration is overridable.
+
+
+
+
+ The configuration values related to C-Space are overridable.
+
+
+
+
+ The configuration values only related to S-Space are overridable.
+
+
+
+
+ Populate the table mapping structure
+
+
+
+
+ Sets nullability for association set mappings' foreign keys for 1:* and 1:0..1 associations
+ when no base types share the the association set mapping's table
+
+
+
+
+ Makes sure only the required property mappings are present
+
+
+
+
+ Determines if the table and entity type need mapping, and if not, removes the existing entity type mapping
+
+
+
+
+ Base class for configuring a property on an entity type or complex type.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Convention to set a default maximum length of 4000 for properties whose type supports length facets when SqlCe is the provider.
+
+
+
+
+ Convention to process instances of found on navigation properties in the model.
+
+
+
+
+ Exception thrown from when an exception is thrown from the validation
+ code.
+
+
+
+
+ Initializes a new instance of DbUnexpectedValidationException
+
+ The exception message.
+
+
+
+ Initializes a new instance of DbUnexpectedValidationException
+
+ The exception message.
+
+
+
+ Initializes a new instance of DbUnexpectedValidationException
+
+ The exception message.
+ The inner exception.
+
+
+
+ Initializes a new instance of DbUnexpectedValidationException with the specified serialization info and
+ context.
+
+ The serialization info.
+ The streaming context.
+
+
+
+ An implementation of IDatabaseInitializer that will always recreate and optionally re-seed the
+ database the first time that a context is used in the app domain.
+ To seed the database, create a derived class and override the Seed method.
+
+ The type of the context.
+
+
+
+
+ Executes the strategy to initialize the database for the given context.
+
+ The context.
+
+
+
+ Executes the strategy to initialize the database for the given context.
+
+ The context.
+
+
+
+ A that should be overridden to actually add data to the context for seeding.
+ The default implementation does nothing.
+
+ The context to seed.
+
+
+
+ An implementation of IDatabaseInitializer that will recreate and optionally re-seed the
+ database only if the database does not exist.
+ To seed the database, create a derived class and override the Seed method.
+
+ The type of the context.
+
+
+
+ Executes the strategy to initialize the database for the given context.
+
+ The context.
+
+
+
+ A that should be overridden to actually add data to the context for seeding.
+ The default implementation does nothing.
+
+ The context to seed.
+
+
+
+ An instances of this class is obtained from an object and can be used
+ to manage the actual database backing a DbContext or connection.
+ This includes creating, deleting, and checking for the existence of a database.
+ Note that deletion and checking for existence of a database can be performed using just a
+ connection (i.e. without a full context) by using the static methods of this class.
+
+
+
+
+ Creates a Database backed by the given context. This object can be used to create a database,
+ check for database existence, and delete a database.
+
+ The context that defines the database connection and model.
+
+
+
+ Gets or sets the database initialization strategy. The database initialization strategy is called when instance
+ is initialized from a . The strategy can optionally check for database existence, create a new database, and
+ seed the database with data.
+ The default strategy is an instance of created with useSeedData set
+ to true.
+
+ The type of the context.
+ The strategy.
+ The database creation strategy.
+
+
+
+ Internal version of SetInitializer that allows the strategy to be locked such that it cannot be replaced
+ by another call to SetInitializer. This allows strategies set in the app.config to win over strategies set
+ in code.
+
+ The type of the context.
+ The strategy.
+ if set to true then the strategy is locked.
+
+
+
+ Runs the the registered on this context.
+
+ If "force" is set to true, then the initializer is run regardless of whether or not it
+ has been run before. This can be useful if a database is deleted while an app is running
+ and needs to be reinitialized.
+
+ If "force" is set to false, then the initializer is only run if it has not already been
+ run for this context, model, and connection in this app domain. This method is typically
+ used when it is necessary to ensure that the database has been created and seeded
+ before starting some operation where doing so lazily will cause issues, such as when the
+ operation is part of a transaction.
+
+ if set to true the initializer is run even if it has already been run.
+
+
+
+ This method returns true if the context has a model hash and the database contains a model hash
+ and these hashes match. This indicates that the model used to create the database is the same
+ as the current model and so the two can be used together.
+
+ If set to true then an exception will be thrown if no
+ model metadata is found either in the model associated with the context or in the database
+ itself. If set to false then this method will return true if metadata is
+ not found.
+
+ True if the model hash in the context and the database match; false otherwise.
+
+
+
+
+ Creates a new database on the database server for the model defined in the backing context.
+ Note that calling this method before the database initialization strategy has run will disable
+ executing that strategy.
+
+
+
+
+ Creates a new database on the database server for the model defined in the backing context, but only
+ if a database with the same name does not already exist on the server.
+
+ True if the database did not exist and was created; false otherwise.
+
+
+
+ Checks whether or not the database exists on the server.
+
+ True if the database exists; false otherwise.
+
+
+
+ Deletes the database on the database server if it exists, otherwise does nothing.
+
+ True if the database did exist and was deleted; false otherwise.
+
+
+
+ Checks whether or not the database exists on the server.
+ The connection to the database is created using the given database name or connection string
+ in the same way as is described in the documentation for the class.
+
+ The database name or a connection string to the database.
+ True if the database exists; false otherwise.
+
+
+
+ Deletes the database on the database server if it exists, otherwise does nothing.
+ The connection to the database is created using the given database name or connection string
+ in the same way as is described in the documentation for the class.
+
+ The database name or a connection string to the database.
+ True if the database did exist and was deleted; false otherwise.
+
+
+
+ Checks whether or not the database exists on the server.
+
+ An existing connection to the database.
+ True if the database exists; false otherwise.
+
+
+
+ Deletes the database on the database server if it exists, otherwise does nothing.
+
+ An existing connection to the database.
+ True if the database did exist and was deleted; false otherwise.
+
+
+
+ Performs the operation defined by the given delegate using the given lazy connection, ensuring
+ that the lazy connection is disposed after use.
+
+ Information used to create a DbConnection.
+ The operation to perform.
+ The return value of the operation.
+
+
+
+ Performs the operation defined by the given delegate against a connection. The connection
+ is either the connection accessed from the context backing this object, or is obtained from
+ the connection information passed to one of the static methods.
+
+ The connection to use.
+ The operation to perform.
+ The return value of the operation.
+
+
+
+ Returns an empty ObjectContext that can be used to perform delete/exists operations.
+
+ The connection for which to create an ObjectContext
+ The empty context.
+
+
+
+ Creates a raw SQL query that will return elements of the given generic type.
+ The type can be any type that has properties that match the names of the columns returned
+ from the query, or can be a simple primitive type. The type does not have to be an
+ entity type. The results of this query are never tracked by the context even if the
+ type of object returned is an entity type. Use the
+ method to return entities that are tracked by the context.
+
+ The type of object returned by the query.
+ The SQL query string.
+ The parameters to apply to the SQL query string.
+ A object that will execute the query when it is enumerated.
+
+
+
+ Creates a raw SQL query that will return elements of the given type.
+ The type can be any type that has properties that match the names of the columns returned
+ from the query, or can be a simple primitive type. The type does not have to be an
+ entity type. The results of this query are never tracked by the context even if the
+ type of object returned is an entity type. Use the
+ method to return entities that are tracked by the context.
+
+ The type of object returned by the query.
+ The SQL query string.
+ The parameters to apply to the SQL query string.
+ A object that will execute the query when it is enumerated.
+
+
+
+ Executes the given DDL/DML command against the database.
+
+ The command string.
+ The parameters to apply to the command string.
+ The result returned by the database after executing the command.
+
+
+
+ Returns the connection being used by this context. This may cause the context to be initialized
+ and the connection to be created if it does not already exist.
+
+ Thrown if the context has been disposed.
+
+
+
+ Returns the as a delegate that can be called with
+ an instance of the that owns this Database object, or returns null if
+ there is no initializer set for this context type.
+
+ The initializer delegate or null.
+
+
+
+ The connection factory to use when creating a from just
+ a database name or a connection string.
+
+
+ This is used when just a database name or connection string is given to or when
+ the no database name or connection is given to DbContext in which case the name of
+ the context class is passed to this factory in order to generate a DbConnection.
+ The default connection factory creates a connection to SQL Express on the local machine. However,
+ this default may be changed by an application framework.
+
+
+
+
+ An implementation of IDatabaseInitializer that will DELETE, recreate, and optionally re-seed the
+ database only if the model has changed since the database was created. This is achieved by writing a
+ hash of the store model to the database when it is created and then comparing that hash with one
+ generated from the current model.
+ To seed the database, create a derived class and override the Seed method.
+
+
+
+
+ Executes the strategy to initialize the database for the given context.
+
+ The context.
+
+
+
+ A that should be overridden to actually add data to the context for seeding.
+ The default implementation does nothing.
+
+ The context to seed.
+
+
+
+ A DbContext instance represents a combination of the Unit Of Work and Repository patterns such that
+ it can be used to query from a database and group together changes that will then be written
+ back to the store as a unit.
+ DbContext is conceptually similar to ObjectContext.
+
+
+ DbContext is usually used with a derived type that contains properties for
+ the root entities of the model. These sets are automatically initialized when the
+ instance of the derived class is created. This behavior can be modified by applying the
+ attribute to either the entire derived context
+ class, or to individual properties on the class.
+
+ The Entity Data Model backing the context can be specified in several ways. When using the Code First
+ approach, the properties on the derived context are used to build a model
+ by convention. The protected OnModelCreating method can be overridden to tweak this model. More
+ control over the model used for the Model First approach can be obtained by creating a
+ explicitly from a and passing this model to one of the DbContext constructors.
+
+ When using the Database First or Model First approach the Entity Data Model can be created using the
+ Entity Designer (or manually through creation of an EDMX file) and then this model can be specified using
+ entity connection string or an object.
+
+ The connection to the database (including the name of the database) can be specified in several ways.
+ If the parameterless DbContext constructor is called from a derived context, then the name of the derived context
+ is used to find a connection string in the app.config or web.config file. If no connection string is found, then
+ the name is passed to the DefaultConnectionFactory registered on the class. The connection
+ factory then uses the context name as the database name in a default connection string. (This default connection
+ string points to .\SQLEXPRESS on the local machine unless a different DefaultConnectionFactory is registered.)
+
+ Instead of using the derived context name, the connection/database name can also be specified explicitly by
+ passing the name to one of the DbContext constructors that takes a string. The name can also be passed in
+ the form "name=myname", in which case the name must be found in the config file or an exception will be thrown.
+
+ Note that the connection found in the app.config or web.config file can be a normal database connection
+ string (not a special Entity Framework connection string) in which case the DbContext will use Code First.
+ However, if the connection found in the config file is a special Entity Framework connection string, then the
+ DbContext will use Database/Model First and the model specified in the connection string will be used.
+
+ An existing or explicitly created DbConnection can also be used instead of the database/connection name.
+
+ A can be applied to a class derived from DbContext to set the
+ version of conventions used by the context when it creates a model. If no attribute is applied then the
+ latest version of conventions will be used.
+
+
+
+
+ Interface implemented by objects that can provide an instance.
+ The class implements this interface to provide access to the underlying
+ ObjectContext.
+
+
+
+
+ Gets the object context.
+
+ The object context.
+
+
+
+ Constructs a new context instance using conventions to create the name of the database to
+ which a connection will be made. The by-convention name is the full name (namespace + class name)
+ of the derived context class.
+ See the class remarks for how this is used to create a connection.
+
+
+
+
+ Constructs a new context instance using conventions to create the name of the database to
+ which a connection will be made, and initializes it from the given model.
+ The by-convention name is the full name (namespace + class name) of the derived context class.
+ See the class remarks for how this is used to create a connection.
+
+ The model that will back this context.
+
+
+
+ Constructs a new context instance using the given string as the name or connection string for the
+ database to which a connection will be made.
+ See the class remarks for how this is used to create a connection.
+
+ Either the database name or a connection string.
+
+
+
+ Constructs a new context instance using the given string as the name or connection string for the
+ database to which a connection will be made, and initializes it from the given model.
+ See the class remarks for how this is used to create a connection.
+
+ Either the database name or a connection string.
+ The model that will back this context.
+
+
+
+ Constructs a new context instance using the existing connection to connect to a database.
+ The connection will not be disposed when the context is disposed.
+
+ An existing connection to use for the new context.
+ If set to true the connection is disposed when
+ the context is disposed, otherwise the caller must dispose the connection.
+
+
+
+ Constructs a new context instance using the existing connection to connect to a database,
+ and initializes it from the given model.
+ The connection will not be disposed when the context is disposed.
+ An existing connection to use for the new context.
+ The model that will back this context.
+ If set to true the connection is disposed when
+ the context is disposed, otherwise the caller must dispose the connection.
+
+
+
+
+ Constructs a new context instance around an existing ObjectContext.
+ An existing ObjectContext to wrap with the new context.
+ If set to true the ObjectContext is disposed when
+ the DbContext is disposed, otherwise the caller must dispose the connection.
+
+
+
+
+ Initializes the internal context, discovers and initializes sets, and initializes from a model if one is provided.
+
+
+
+
+ Discovers DbSets and initializes them.
+
+
+
+
+ This method is called when the model for a derived context has been initialized, but
+ before the model has been locked down and used to initialize the context. The default
+ implementation of this method does nothing, but it can be overridden in a derived class
+ such that the model can be further configured before it is locked down.
+
+
+ Typically, this method is called only once when the first instance of a derived context
+ is created. The model for that context is then cached and is for all further instances of
+ the context in the app domain. This caching can be disabled by setting the ModelCaching
+ property on the given ModelBuidler, but note that this can seriously degrade performance.
+ More control over caching is provided through use of the DbModelBuilder and DbContextFactory
+ classes directly.
+
+ The builder that defines the model for the context being created.
+
+
+
+ Internal method used to make the call to the real OnModelCreating method.
+
+ The model builder.
+
+
+
+ Returns a DbSet instance for access to entities of the given type in the context,
+ the ObjectStateManager, and the underlying store.
+
+
+ See the DbSet class for more details.
+
+ The type entity for which a set should be returned.
+ A set for the given entity type.
+
+
+
+ Returns a non-generic DbSet instance for access to entities of the given type in the context,
+ the ObjectStateManager, and the underlying store.
+
+ The type of entity for which a set should be returned.
+ A set for the given entity type.
+
+ See the DbSet class for more details.
+
+
+
+
+ Saves all changes made in this context to the underlying database.
+
+ The number of objects written to the underlying database.
+ Thrown if the context has been disposed.
+
+
+
+ Validates tracked entities and returns a Collection of containing validation results.
+
+
+ Collection of validation results for invalid entities. The collection is never null and must not contain null
+ values or results for valid entities.
+
+
+ 1. This method calls DetectChanges() to determine states of the tracked entities unless
+ DbContextConfiguration.AutoDetectChangesEnabled is set to false.
+ 2. By default only Added on Modified entities are validated. The user is able to change this behavior
+ by overriding ShouldValidateEntity method.
+
+
+
+
+ Extension point allowing the user to override the default behavior of validating only
+ added and modified entities.
+
+ DbEntityEntry instance that is supposed to be validated.
+ true to proceed with validation. false otherwise.
+
+
+
+ Extension point allowing the user to customize validation of an entity or filter out validation results.
+ Called by .
+
+ DbEntityEntry instance to be validated.
+ User defined dictionary containing additional info for custom validation.
+ It will be passed to
+ and will be exposed as .
+ This parameter is optional and can be null.
+ Entity validation result. Possibly null when overridden.
+
+
+
+ Internal method that calls the protected ValidateEntity method.
+
+ DbEntityEntry instance to be validated.
+ User defined dictionary containing additional info for custom validation.
+ It will be passed to
+ and will be exposed as .
+ This parameter is optional and can be null.
+ Entity validation result. Possibly null when ValidateEntity is overridden.
+
+
+
+ Gets a object for the given entity providing access to
+ information about the entity and the ability to perform actions on the entity.
+
+ The type of the entity.
+ The entity.
+ An entry for the entity.
+
+
+
+ Gets a object for the given entity providing access to
+ information about the entity and the ability to perform actions on the entity.
+
+ The entity.
+ An entry for the entity.
+
+
+
+ Calls the protected Dispose method.
+
+
+
+
+ Disposes the context. The underlying is also disposed if it was created
+ is by this context or ownership was passed to this context when this context was created.
+ The connection to the database ( object) is also disposed if it was created
+ is by this context or ownership was passed to this context when this context was created.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Creates a Database instance for this context that allows for creation/deletion/existence checks
+ for the underlying database.
+
+
+
+
+ Returns the Entity Framework ObjectContext that is underlying this context.
+
+ Thrown if the context has been disposed.
+
+
+
+ Provides access to features of the context that deal with change tracking of entities.
+
+ An object used to access features that deal with change tracking.
+
+
+
+ Provides access to configuration options for the context.
+
+ An object used to access configuration options.
+
+
+
+ Provides access to the underlying InternalContext for other parts of the internal design.
+
+
+
+
+
+
+ Common code for generic and non-generic string Include.
+
+
+
+
+
+ Returns a new query where the entities returned will not be cached in the
+ or . This method works by calling the AsNoTracking method of the
+ underlying query object. If the underlying query object does not have a AsNoTracking method,
+ then calling this method will have no affect.
+
+ The element type.
+ The source query.
+ A new query with NoTracking applied, or the source query if NoTracking is not supported.
+
+
+
+ Returns a new query where the entities returned will not be cached in the
+ or . This method works by calling the AsNoTracking method of the
+ underlying query object. If the underlying query object does not have a AsNoTracking method,
+ then calling this method will have no affect.
+
+ The source query.
+ A new query with NoTracking applied, or the source query if NoTracking is not supported.
+
+
+
+ Common code for generic and non-generic AsNoTracking.
+
+
+
+
+ Enumerates the query such that for server queries such as those of , ,
+ , and others the results of the query will be loaded into the associated ,
+ or other cache on the client.
+ This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list.
+
+ The source query.
+
+
+
+ Returns an implementation that stays in sync with the given .
+
+ The element type.
+ The collection that the binding list will stay in sync with.
+ The binding list.
+
+
+
+ A DbSet represents the collection of all entities in the context, or that can be queried from the
+ database, of a given type. DbSet objects are created from a DbContext using the DbContext.Set method.
+
+
+ Note that DbSet does not support MEST (Multiple Entity Sets per Type) meaning that there is always a
+ one-to-one correlation between a type and a set.
+
+ The type that defines the set.
+
+
+
+ Represents a LINQ to Entities query against a DbContext.
+
+ The type of entity to query for.
+
+
+
+ An internal interface implemented by and that allows access to
+ the internal query without using reflection.
+
+
+
+
+ The underlying internal set.
+
+
+
+
+ Creates a new query that will be backed by the given internal query object.
+
+ The backing query.
+
+
+
+
+ Returns a new query where the entities returned will not be cached in the .
+
+ A new query with NoTracking applied.
+
+
+
+ Throws an exception indicating that binding directly to a store query is not supported.
+ Instead populate a DbSet with data, for example by using the Load extension method, and
+ then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to
+ DbSet.Local.ToBindingList().
+
+
+ Never returns; always throws.
+
+
+
+
+ Gets the enumeration of this query causing it to be executed against the store.
+
+ An enumerator for the query
+
+
+
+ Gets the enumeration of this query causing it to be executed against the store.
+
+ An enumerator for the query
+
+
+
+ Returns a representation of the underlying query.
+
+
+ The query string.
+
+
+
+
+ Returns a new instance of the non-generic class for this query.
+
+ A non-generic version.
+
+
+
+ Returns false.
+
+ false.
+
+
+
+ The IQueryable element type.
+
+
+
+
+ The IQueryable LINQ Expression.
+
+
+
+
+ The IQueryable provider.
+
+
+
+
+ The internal query object that is backing this DbQuery
+
+
+
+
+ The internal query object that is backing this DbQuery
+
+
+
+
+ An IDbSet represents the collection of all entities in the context, or that can be queried from the
+ database, of a given type. DbSet is a concrete implementation of IDbSet.
+
+ The type that defines the set.
+
+
+
+ Finds an entity with the given primary key values.
+ If an entity with the given primary key values exists in the context, then it is
+ returned immediately without making a request to the store. Otherwise, a request
+ is made to the store for an entity with the given primary key values and this entity,
+ if found, is attached to the context and returned. If no entity is found in the
+ context or the store, then null is returned.
+
+
+ The ordering of composite key values is as defined in the EDM, which is in turn as defined in
+ the designer, by the Code First fluent API, or by the DataMember attribute.
+
+ The values of the primary key for the entity to be found.
+ The entity found, or null.
+
+
+
+ Adds the given entity to the context underlying the set in the Added state such that it will
+ be inserted into the database when SaveChanges is called.
+
+ The entity to add.
+ The entity.
+
+ Note that entities that are already in the context in some other state will have their state set
+ to Added. Add is a no-op if the entity is already in the context in the Added state.
+
+
+
+
+ Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges
+ is called. Note that the entity must exist in the context in some other state before this method
+ is called.
+
+ The entity to remove.
+ The entity.
+
+ Note that if the entity exists in the context in the Added state, then this method
+ will cause it to be detached from the context. This is because an Added entity is assumed not to
+ exist in the database such that trying to delete it does not make sense.
+
+
+
+
+ Attaches the given entity to the context underlying the set. That is, the entity is placed
+ into the context in the Unchanged state, just as if it had been read from the database.
+
+ The entity to attach.
+ The entity.
+
+ Attach is used to repopulate a context with an entity that is known to already exist in the database.
+ SaveChanges will therefore not attempt to insert an attached entity into the database because
+ it is assumed to already be there.
+ Note that entities that are already in the context in some other state will have their state set
+ to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state.
+
+
+
+
+ Creates a new instance of an entity for the type of this set.
+ Note that this instance is NOT added or attached to the set.
+ The instance returned will be a proxy if the underlying context is configured to create
+ proxies and the entity type meets the requirements for creating a proxy.
+
+ The entity instance, which may be a proxy.
+
+
+
+ Creates a new instance of an entity for the type of this set or for a type derived
+ from the type of this set.
+ Note that this instance is NOT added or attached to the set.
+ The instance returned will be a proxy if the underlying context is configured to create
+ proxies and the entity type meets the requirements for creating a proxy.
+
+ The type of entity to create.
+ The entity instance, which may be a proxy.
+
+
+
+ Gets an that represents a local view of all Added, Unchanged,
+ and Modified entities in this set. This local view will stay in sync as entities are added or
+ removed from the context. Likewise, entities added to or removed from the local view will automatically
+ be added to or removed from the context.
+
+
+ This property can be used for data binding by populating the set with data, for example by using the Load
+ extension method, and then binding to the local data through this property. For WPF bind to this property
+ directly. For Windows Forms bind to the result of calling ToBindingList on this property
+
+ The local view.
+
+
+
+ An internal interface implemented by and that allows access to
+ the internal set without using reflection.
+
+
+
+
+ The underlying internal set.
+
+
+
+
+ Creates a new set that will be backed by the given .
+
+ The internal set.
+
+
+
+ Finds an entity with the given primary key values.
+ If an entity with the given primary key values exists in the context, then it is
+ returned immediately without making a request to the store. Otherwise, a request
+ is made to the store for an entity with the given primary key values and this entity,
+ if found, is attached to the context and returned. If no entity is found in the
+ context or the store, then null is returned.
+
+
+ The ordering of composite key values is as defined in the EDM, which is in turn as defined in
+ the designer, by the Code First fluent API, or by the DataMember attribute.
+
+ The values of the primary key for the entity to be found.
+ The entity found, or null.
+ Thrown if multiple entities exist in the context with the primary key values given.
+ Thrown if the type of entity is not part of the data model for this context.
+ Thrown if the types of the key values do not match the types of the key values for the entity type to be found.
+ Thrown if the context has been disposed.
+
+
+
+ Attaches the given entity to the context underlying the set. That is, the entity is placed
+ into the context in the Unchanged state, just as if it had been read from the database.
+
+ The entity to attach.
+ The entity.
+
+ Attach is used to repopulate a context with an entity that is known to already exist in the database.
+ SaveChanges will therefore not attempt to insert an attached entity into the database because
+ it is assumed to already be there.
+ Note that entities that are already in the context in some other state will have their state set
+ to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state.
+
+
+
+
+ Adds the given entity to the context underlying the set in the Added state such that it will
+ be inserted into the database when SaveChanges is called.
+
+ The entity to add.
+ The entity.
+
+ Note that entities that are already in the context in some other state will have their state set
+ to Added. Add is a no-op if the entity is already in the context in the Added state.
+
+
+
+
+ Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges
+ is called. Note that the entity must exist in the context in some other state before this method
+ is called.
+
+ The entity to remove.
+ The entity.
+
+ Note that if the entity exists in the context in the Added state, then this method
+ will cause it to be detached from the context. This is because an Added entity is assumed not to
+ exist in the database such that trying to delete it does not make sense.
+
+
+
+
+ Creates a new instance of an entity for the type of this set.
+ Note that this instance is NOT added or attached to the set.
+ The instance returned will be a proxy if the underlying context is configured to create
+ proxies and the entity type meets the requirements for creating a proxy.
+
+ The entity instance, which may be a proxy.
+
+
+
+ Creates a new instance of an entity for the type of this set or for a type derived
+ from the type of this set.
+ Note that this instance is NOT added or attached to the set.
+ The instance returned will be a proxy if the underlying context is configured to create
+ proxies and the entity type meets the requirements for creating a proxy.
+
+ The type of entity to create.
+ The entity instance, which may be a proxy.
+
+
+
+ Returns the equivalent non-generic object.
+
+ The non-generic set object.
+
+
+
+ Creates a raw SQL query that will return entities in this set. By default, the
+ entities returned are tracked by the context; this can be changed by calling
+ AsNoTracking on the returned.
+ Note that the entities returned are always of the type for this set and never of
+ a derived type. If the table or tables queried may contain data for other entity
+ types, then the SQL query must be written appropriately to ensure that only entities of
+ the correct type are returned.
+
+ The SQL query string.
+ The parameters to apply to the SQL query string.
+ A object that will execute the query when it is enumerated.
+
+
+
+ Gets an that represents a local view of all Added, Unchanged,
+ and Modified entities in this set. This local view will stay in sync as entities are added or
+ removed from the context. Likewise, entities added to or removed from the local view will automatically
+ be added to or removed from the context.
+
+
+ This property can be used for data binding by populating the set with data, for example by using the Load
+ extension method, and then binding to the local data through this property. For WPF bind to this property
+ directly. For Windows Forms bind to the result of calling ToBindingList on this property
+
+ The local view.
+
+
+
+ The internal IQueryable that is backing this DbQuery
+
+
+
+
+ A non-generic version of which can be used when the type of entity
+ is not known at build time.
+
+
+
+
+ Represents a non-generic LINQ to Entities query against a DbContext.
+
+
+
+
+ Internal constructor prevents external classes deriving from DbQuery.
+
+
+
+
+ Throws an exception indicating that binding directly to a store query is not supported.
+ Instead populate a DbSet with data, for example by using the Load extension method, and
+ then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to
+ DbSet.Local.ToBindingList().
+
+
+ Never returns; always throws.
+
+
+
+
+ Gets the enumeration of this query causing it to be executed against the store.
+
+ An enumerator for the query
+
+
+
+
+ Returns a new query where the entities returned will not be cached in the .
+
+ A new query with NoTracking applied.
+
+
+
+ Returns the equivalent generic object.
+
+ The type of element for which the query was created.
+ The generic set object.
+
+
+
+ Returns a representation of the underlying query.
+
+
+ The query string.
+
+
+
+
+ Returns false.
+
+ false.
+
+
+
+ The IQueryable element type.
+
+
+
+
+ The IQueryable LINQ Expression.
+
+
+
+
+ The IQueryable provider.
+
+
+
+
+ Gets the underlying internal query object.
+
+ The internal query.
+
+
+
+ The internal query object that is backing this DbQuery
+
+
+
+
+ Internal constructor prevents external classes deriving from DbSet.
+
+
+
+
+ Finds an entity with the given primary key values.
+ If an entity with the given primary key values exists in the context, then it is
+ returned immediately without making a request to the store. Otherwise, a request
+ is made to the store for an entity with the given primary key values and this entity,
+ if found, is attached to the context and returned. If no entity is found in the
+ context or the store, then null is returned.
+
+
+ The ordering of composite key values is as defined in the EDM, which is in turn as defined in
+ the designer, by the Code First fluent API, or by the DataMember attribute.
+
+ The values of the primary key for the entity to be found.
+ The entity found, or null.
+ Thrown if multiple entities exist in the context with the primary key values given.
+ Thrown if the type of entity is not part of the data model for this context.
+ Thrown if the types of the key values do not match the types of the key values for the entity type to be found.
+ Thrown if the context has been disposed.
+
+
+
+ Attaches the given entity to the context underlying the set. That is, the entity is placed
+ into the context in the Unchanged state, just as if it had been read from the database.
+
+ The entity to attach.
+ The entity.
+
+ Attach is used to repopulate a context with an entity that is known to already exist in the database.
+ SaveChanges will therefore not attempt to insert an attached entity into the database because
+ it is assumed to already be there.
+ Note that entities that are already in the context in some other state will have their state set
+ to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state.
+
+
+
+
+ Adds the given entity to the context underlying the set in the Added state such that it will
+ be inserted into the database when SaveChanges is called.
+
+ The entity to add.
+ The entity.
+
+ Note that entities that are already in the context in some other state will have their state set
+ to Added. Add is a no-op if the entity is already in the context in the Added state.
+
+
+
+
+ Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges
+ is called. Note that the entity must exist in the context in some other state before this method
+ is called.
+
+ The entity to remove.
+ The entity.
+
+ Note that if the entity exists in the context in the Added state, then this method
+ will cause it to be detached from the context. This is because an Added entity is assumed not to
+ exist in the database such that trying to delete it does not make sense.
+
+
+
+
+ Creates a new instance of an entity for the type of this set.
+ Note that this instance is NOT added or attached to the set.
+ The instance returned will be a proxy if the underlying context is configured to create
+ proxies and the entity type meets the requirements for creating a proxy.
+
+ The entity instance, which may be a proxy.
+
+
+
+ Creates a new instance of an entity for the type of this set or for a type derived
+ from the type of this set.
+ Note that this instance is NOT added or attached to the set.
+ The instance returned will be a proxy if the underlying context is configured to create
+ proxies and the entity type meets the requirements for creating a proxy.
+
+ The entity instance, which may be a proxy.
+
+
+
+ Returns the equivalent generic object.
+
+ The type of entity for which the set was created.
+ The generic set object.
+
+
+
+ Creates a raw SQL query that will return entities in this set. By default, the
+ entities returned are tracked by the context; this can be changed by calling
+ AsNoTracking on the returned.
+ Note that the entities returned are always of the type for this set and never of
+ a derived type. If the table or tables queried may contain data for other entity
+ types, then the SQL query must be written appropriately to ensure that only entities of
+ the correct type are returned.
+
+ The SQL query string.
+ The parameters to apply to the SQL query string.
+ A object that will execute the query when it is enumerated.
+
+
+
+ Gets an that represents a local view of all Added, Unchanged,
+ and Modified entities in this set. This local view will stay in sync as entities are added or
+ removed from the context. Likewise, entities added to or removed from the local view will automatically
+ be added to or removed from the context.
+
+
+ This property can be used for data binding by populating the set with data, for example by using the Load
+ extension method, and then binding to the local data through this property. For WPF bind to this property
+ directly. For Windows Forms bind to the result of calling ToBindingList on this property
+
+ The local view.
+
+
+
+ The internal IQueryable that is backing this DbQuery
+
+
+
+
+ Gets the underlying internal set.
+
+ The internal set.
+
+
+
+ Contains methods used to access the Entity Data Model created by Code First in the EDMX form.
+ These methods are typically used for debugging when there is a need to look at the model that
+ Code First creates internally.
+
+
+
+
+ Uses Code First with the given context and writes the resulting Entity Data Model to the given
+ writer in EDMX form. This method can only be used with context instances that use Code First
+ and create the model internally. The method cannot be used for contexts created using Database
+ First or Model First, for contexts created using a pre-existing , or
+ for contexts created using a pre-existing .
+
+ The context.
+ The writer.
+
+
+
+ Writes the Entity Data Model represented by the given to the
+ given writer in EDMX form.
+
+ An object representing the EDM.
+ The writer.
+
+
+
+ This attribute can be applied to a class derived from to set which
+ version of the DbContext and conventions should be used when building
+ a model from code--also know as "Code First". See the
+ enumeration for details about DbModelBuilder versions.
+
+
+ If the attribute is missing from DbContextthen DbContext will always use the latest
+ version of the conventions. This is equivalent to using DbModelBuilderVersion.Latest.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The conventions version to use.
+
+
+
+ Gets the conventions version.
+
+ The conventions version.
+
+
+
+ A value from this enumeration can be provided directly to the
+ class or can be used in the applied to
+ a class derived from . The value used defines which version of
+ the DbContext and DbModelBuilder conventions should be used when building a model from
+ code--also know as "Code First".
+
+
+ Using DbModelBuilderVersion.Latest ensures that all the latest functionality is available
+ when upgrading to a new release of the Entity Framework. However, it may result in an
+ application behaving differently with the new release than it did with a previous release.
+ This can be avoided by using a specific version of the conventions, but if a version
+ other than the latest is set then not all the latest functionality will be available.
+
+
+
+
+ Indicates that the latest version of the and
+ conventions should be used.
+
+
+
+
+ Indicates that the version of the and
+ conventions shipped with Entity Framework v4.1
+ should be used.
+
+
+
+
+ Represents an Entity Data Model (EDM) created by the .
+ The Compile method can be used to go from this EDM representation to a
+ which is a compiled snapshot of the model suitable for caching and creation of
+ or instances.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a for this mode which is a compiled snapshot
+ suitable for caching and creation of instances.
+
+ The compiled model.
+
+
+
+ Implementations of this interface are used to create DbConnection objects for
+ a type of database server based on a given database name.
+ An Instance is set on the class to
+ cause all DbContexts created with no connection information or just a database
+ name or connection string to use a certain type of database server by default.
+ Two implementations of this interface are provided:
+ is used to create connections to Microsoft SQL Server, including EXPRESS editions.
+ is used to create connections to Microsoft SQL
+ Server Compact Editions.
+ Other implementations for other database servers can be added as needed.
+ Note that implementations should be thread safe or immutable since they may
+ be accessed by multiple threads at the same time.
+
+
+
+
+ Creates a connection based on the given database name or connection string.
+
+ The database name or connection string.
+ An initialized DbConnection.
+
+
+
+ Represents a SQL query for entities that is created from a
+ and is executed using the connection from that context.
+ Instances of this class are obtained from the instance for the
+ entity type. The query is not executed when this object is created; it is executed
+ each time it is enumerated, for example by using foreach.
+ SQL queries for non-entities are created using the .
+ See for a generic version of this class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The internal query.
+
+
+
+ Executes the query and returns an enumerator for the elements.
+
+
+ An object that can be used to iterate through the elements.
+
+
+
+
+ Returns a new query where the results of the query will not be tracked by the associated
+ .
+
+ A new query with no-tracking applied.
+
+
+
+ Returns a that contains the SQL string that was set
+ when the query was created. The parameters are not included.
+
+
+ A that represents this instance.
+
+
+
+
+ Throws an exception indicating that binding directly to a store query is not supported.
+
+
+ Never returns; always throws.
+
+
+
+
+ Gets the internal query.
+
+ The internal query.
+
+
+
+ Returns false.
+
+ false.
+
+
+
+ Represents a SQL query for entities that is created from a
+ and is executed using the connection from that context.
+ Instances of this class are obtained from the instance for the
+ entity type. The query is not executed when this object is created; it is executed
+ each time it is enumerated, for example by using foreach.
+ SQL queries for non-entities are created using the .
+ See for a non-generic version of this class.
+
+
+
+
+ Executes the query and returns an enumerator for the elements.
+
+ An object that can be used to iterate through the elements.
+
+
+
+ Executes the query and returns an enumerator for the elements.
+
+
+ An object that can be used to iterate through the elements.
+
+
+
+
+ Returns a new query where the results of the query will not be tracked by the associated
+ .
+
+ A new query with no-tracking applied.
+
+
+
+ Returns a that contains the SQL string that was set
+ when the query was created. The parameters are not included.
+
+
+ A that represents this instance.
+
+
+
+
+ Throws an exception indicating that binding directly to a store query is not supported.
+
+
+ Never returns; always throws.
+
+
+
+
+ Gets the internal query.
+
+ The internal query.
+
+
+
+ Returns false.
+
+ false.
+
+
+
+ This convention causes DbModelBuilder to include metadata about the model
+ when it builds the model. When creates a model by convention it will
+ add this convention to the list of those used by the DbModelBuilder. This will then result in
+ model metadata being written to the database if the DbContext is used to create the database.
+ This can then be used as a quick check to see if the model has changed since the last time it was
+ used against the database.
+ This convention can be removed from the conventions by overriding
+ the OnModelCreating method on a derived DbContext class.
+
+
+
+
+ Adds metadata to the given model configuration.
+
+ The model configuration.
+
+
+
+ Instances of this class are used to create DbConnection objects for
+ SQL Server Compact Edition based on a given database name or connection string.
+
+
+ It is necessary to provide the provider invariant name of the SQL Server Compact
+ Edition to use when creating an instance of this class. This is because different
+ versions of SQL Server Compact Editions use different invariant names.
+ An instance of this class can be set on the class to
+ cause all DbContexts created with no connection information or just a database
+ name or connection string to use SQL Server Compact Edition by default.
+ This class is immutable since multiple threads may access instances simultaneously
+ when creating connections.
+
+
+
+
+ Creates a new connection factory with empty (default) DatabaseDirectory and BaseConnectionString
+ properties.
+
+ The provider invariant name that specifies the version of SQL Server Compact Edition that should be used.
+
+
+
+ Creates a new connection factory with the given DatabaseDirectory and BaseConnectionString properties.
+
+
+ The provider invariant name that specifies the version of SQL Server Compact Edition that should be used.
+
+
+ The path to prepend to the database name that will form the file name used by SQL Server Compact Edition
+ when it creates or reads the database file. An empty string means that SQL Server Compact Edition will use
+ its default for the database file location.
+
+
+ The connection string to use for options to the database other than the 'Data Source'. The Data Source will
+ be prepended to this string based on the database name when CreateConnection is called.
+
+
+
+
+ Creates a connection for SQL Server Compact Edition based on the given database name or connection string.
+ If the given string contains an '=' character then it is treated as a full connection string,
+ otherwise it is treated as a database name only.
+
+ The database name or connection string.
+ An initialized DbConnection.
+
+
+
+ The path to prepend to the database name that will form the file name used by
+ SQL Server Compact Edition when it creates or reads the database file.
+ The default value is "|DataDirectory|", which means the file will be placed
+ in the designated data directory.
+
+
+
+
+ The connection string to use for options to the database other than the 'Data Source'.
+ The Data Source will be prepended to this string based on the database name when
+ CreateConnection is called.
+ The default is the empty string, which means no other options will be used.
+
+
+
+
+ The provider invariant name that specifies the version of SQL Server Compact Edition
+ that should be used.
+
+
+
+
+ Instances of this class are used to create DbConnection objects for
+ SQL Server based on a given database name or connection string. By default, the connection is
+ made to '.\SQLEXPRESS'. This can be changed by changing the base connection
+ string when constructing a factory instance.
+
+
+ An instance of this class can be set on the class to
+ cause all DbContexts created with no connection information or just a database
+ name or connection string to use SQL Server by default.
+ This class is immutable since multiple threads may access instances simultaneously
+ when creating connections.
+
+
+
+
+ Creates a new connection factory with a default BaseConnectionString property of
+ 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True'.
+
+
+
+
+ Creates a new connection factory with the given BaseConnectionString property.
+
+
+ The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will
+ be prepended to this string based on the database name when CreateConnection is called.
+
+
+
+
+ Creates a connection for SQL Server based on the given database name or connection string.
+ If the given string contains an '=' character then it is treated as a full connection string,
+ otherwise it is treated as a database name only.
+
+ The database name or connection string.
+ An initialized DbConnection.
+
+
+
+ The connection string to use for options to the database other than the 'Initial Catalog'.
+ The 'Initial Catalog' will be prepended to this string based on the database name when
+ CreateConnection is called.
+ The default is 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True'.
+
+
+
+
+ A non-generic version of the class.
+
+
+
+
+ A non-generic version of the class.
+
+
+
+
+ This is an abstract base class use to represent a scalar or complex property, or a navigation property
+ of an entity. Scalar and complex properties use the derived class ,
+ reference navigation properties use the derived class , and collection
+ navigation properties use the derived class .
+
+
+
+
+ Creates a from information in the given .
+ This method will create an instance of the appropriate subclass depending on the metadata contained
+ in the InternalMemberEntry instance.
+
+ The internal member entry.
+ The new entry.
+
+
+
+ Validates this property.
+
+
+ Collection of objects. Never null. If the entity is valid the collection will be empty.
+
+
+
+
+ Returns the equivalent generic object.
+
+ The type of entity on which the member is declared.
+ The type of the property.
+ The equivalent generic object.
+
+
+
+ Gets the name of the property.
+
+ The property name.
+
+
+
+ Gets or sets the current value of this property.
+
+ The current value.
+
+
+
+ The to which this member belongs.
+
+ An entry for the entity that owns this member.
+
+
+
+ Gets the backing this object.
+
+ The internal member entry.
+
+
+
+ Creates a from information in the given .
+ Use this method in preference to the constructor since it may potentially create a subclass depending on
+ the type of member represented by the InternalCollectionEntry instance.
+
+ The internal property entry.
+ The new entry.
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entry.
+
+
+
+ Returns the equivalent generic object.
+
+ The type of entity on which the member is declared.
+ The type of the property.
+ The equivalent generic object.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the original value of this property.
+
+ The original value.
+
+
+
+ Gets or sets the current value of this property.
+
+ The current value.
+
+
+
+ Gets or sets a value indicating whether the value of this property has been modified since
+ it was loaded from the database.
+
+
+ true if this instance is modified; otherwise, false.
+
+
+
+
+ The to which this property belongs.
+
+ An entry for the entity that owns this property.
+
+
+
+ The of the property for which this is a nested property.
+ This method will only return a non-null entry for properties of complex objects; it will
+ return null for properties of the entity itself.
+
+ An entry for the parent complex property, or null if this is an entity property.
+
+
+
+ Gets the backing this object.
+
+ The internal member entry.
+
+
+
+ Creates a from information in the given .
+ Use this method in preference to the constructor since it may potentially create a subclass depending on
+ the type of member represented by the InternalCollectionEntry instance.
+
+ The internal property entry.
+ The new entry.
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entry.
+
+
+
+ Gets an object that represents a nested property of this property.
+ This method can be used for both scalar or complex properties.
+
+ The name of the nested property.
+ An object representing the nested property.
+
+
+
+ Gets an object that represents a nested complex property of this property.
+
+ The name of the nested property.
+ An object representing the nested property.
+
+
+
+ Returns the equivalent generic object.
+
+ The type of entity on which the member is declared.
+ The type of the complex property.
+ The equivalent generic object.
+
+
+
+ Instances of this class are returned from the ComplexProperty method of
+ and allow access to the state of a complex property.
+
+ The type of the entity to which this property belongs.
+ The type of the property.
+
+
+
+ Instances of this class are returned from the Property method of
+ and allow access to the state of the scalar
+ or complex property.
+
+ The type of the entity to which this property belongs.
+ The type of the property.
+
+
+
+ This is an abstract base class use to represent a scalar or complex property, or a navigation property
+ of an entity. Scalar and complex properties use the derived class ,
+ reference navigation properties use the derived class , and collection
+ navigation properties use the derived class .
+
+ The type of the entity to which this property belongs.
+ The type of the property.
+
+
+
+ Creates a from information in the given .
+ This method will create an instance of the appropriate subclass depending on the metadata contained
+ in the InternalMemberEntry instance.
+
+ The internal member entry.
+ The new entry.
+
+
+
+ Returns a new instance of the non-generic class for
+ the property represented by this object.
+
+ A non-generic version.
+
+
+
+ Validates this property.
+
+
+ Collection of objects. Never null. If the entity is valid the collection will be empty.
+
+
+
+
+ Gets or sets the current value of this property.
+
+ The current value.
+
+
+
+ Gets the underlying .
+
+ The internal member entry.
+
+
+
+ The to which this member belongs.
+
+ An entry for the entity that owns this member.
+
+
+
+ Creates a from information in the given .
+ Use this method in preference to the constructor since it may potentially create a subclass depending on
+ the type of member represented by the InternalCollectionEntry instance.
+
+ The internal property entry.
+ The new entry.
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entry.
+
+
+
+ Returns a new instance of the non-generic class for
+ the property represented by this object.
+
+ A non-generic version.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the original value of this property.
+
+ The original value.
+
+
+
+ Gets or sets the current value of this property.
+
+ The current value.
+
+
+
+ Gets or sets a value indicating whether the value of this property has been modified since
+ it was loaded from the database.
+
+
+ true if this instance is modified; otherwise, false.
+
+
+
+
+ The to which this property belongs.
+
+ An entry for the entity that owns this property.
+
+
+
+ The of the property for which this is a nested property.
+ This method will only return a non-null entry for properties of complex objects; it will
+ return null for properties of the entity itself.
+
+ An entry for the parent complex property, or null if this is an entity property.
+
+
+
+ Gets the underlying as an .
+
+ The internal member entry.
+
+
+
+ Creates a from information in the given .
+ Use this method in preference to the constructor since it may potentially create a subclass depending on
+ the type of member represented by the InternalCollectionEntry instance.
+
+ The internal property entry.
+ The new entry.
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entry.
+
+
+
+ Returns a new instance of the non-generic class for
+ the property represented by this object.
+
+ A non-generic version.
+
+
+
+ Gets an object that represents a nested property of this property.
+ This method can be used for both scalar or complex properties.
+
+ The name of the nested property.
+ An object representing the nested property.
+
+
+
+ Gets an object that represents a nested property of this property.
+ This method can be used for both scalar or complex properties.
+
+ The type of the nested property.
+ The name of the nested property.
+ An object representing the nested property.
+
+
+
+ Gets an object that represents a nested property of this property.
+ This method can be used for both scalar or complex properties.
+
+ The type of the nested property.
+ An expression representing the nested property.
+ An object representing the nested property.
+
+
+
+ Gets an object that represents a nested complex property of this property.
+
+ The name of the nested property.
+ An object representing the nested property.
+
+
+
+ Gets an object that represents a nested complex property of this property.
+
+ The type of the nested property.
+ The name of the nested property.
+ An object representing the nested property.
+
+
+
+ Gets an object that represents a nested complex property of this property.
+
+ The type of the nested property.
+ An expression representing the nested property.
+ An object representing the nested property.
+
+
+
+ Returned by the ChangeTracker method of to provide access to features of
+ the context that are related to change tracking of entities.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The internal context.
+
+
+
+ Gets objects for all the entities tracked by this context.
+
+ The entries.
+
+
+
+ Gets objects for all the entities of the given type
+ tracked by this context.
+
+ The type of the entity.
+ The entries.
+
+
+
+ Detects changes made to the properties and relationships of POCO entities. Note that some types of
+ entity (such as change tracking proxies and entities that derive from )
+ report changes automatically and a call to DetectChanges is not normally needed for these types of entities.
+ Also note that normally DetectChanges is called automatically by many of the methods of
+ and its related classes such that it is rare that this method will need to be called explicitly.
+ However, it may be desirable, usually for performance reasons, to turn off this automatic calling of
+ DetectChanges using the AutoDetectChangesEnabled flag from .
+
+
+
+
+ A non-generic version of the class.
+
+
+
+
+ Creates a from information in the given .
+ Use this method in preference to the constructor since it may potentially create a subclass depending on
+ the type of member represented by the InternalCollectionEntry instance.
+
+ The internal collection entry.
+ The new entry.
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entry.
+
+
+
+ Loads the collection of entities from the database.
+ Note that entities that already exist in the context are not overwritten with values from the database.
+
+
+
+
+ Returns the query that would be used to load this collection from the database.
+ The returned query can be modified using LINQ to perform filtering or operations in the database, such
+ as counting the number of entities in the collection in the database without actually loading them.
+
+ A query for the collection.
+
+
+
+ Returns the equivalent generic object.
+
+ The type of entity on which the member is declared.
+ The type of the collection element.
+ The equivalent generic object.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the current value of the navigation property. The current value is
+ the entity that the navigation property references.
+
+ The current value.
+
+
+
+ Gets a value indicating whether the collection of entities has been loaded from the database.
+
+ true if the collection is loaded; otherwise, false.
+
+
+
+ The to which this navigation property belongs.
+
+ An entry for the entity that owns this navigation property.
+
+
+
+ Gets the backing this object as an .
+
+ The internal member entry.
+
+
+
+ Instances of this class are returned from the Collection method of
+ and allow operations such as loading to
+ be performed on the an entity's collection navigation properties.
+
+ The type of the entity to which this property belongs.
+ The type of the element in the collection of entities.
+
+
+
+ Creates a from information in the given .
+ Use this method in preference to the constructor since it may potentially create a subclass depending on
+ the type of member represented by the InternalCollectionEntry instance.
+
+ The internal collection entry.
+ The new entry.
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entry.
+
+
+
+ Loads the collection of entities from the database.
+ Note that entities that already exist in the context are not overwritten with values from the database.
+
+
+
+
+ Returns the query that would be used to load this collection from the database.
+ The returned query can be modified using LINQ to perform filtering or operations in the database, such
+ as counting the number of entities in the collection in the database without actually loading them.
+
+ A query for the collection.
+
+
+
+ Returns a new instance of the non-generic class for
+ the navigation property represented by this object.
+
+ A non-generic version.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the current value of the navigation property. The current value is
+ the entity that the navigation property references.
+
+ The current value.
+
+
+
+ Gets a value indicating whether the collection of entities has been loaded from the database.
+
+ true if the collection is loaded; otherwise, false.
+
+
+
+ Gets the underlying as an .
+
+ The internal member entry.
+
+
+
+ The to which this navigation property belongs.
+
+ An entry for the entity that owns this navigation property.
+
+
+
+ Exception thrown by when it was expected that SaveChanges for an entity would
+ result in a database update but in fact no rows in the database were affected. This usually indicates
+ that the database has been concurrently updated such that a concurrency token that was expected to match
+ did not actually match.
+ Note that state entries referenced by this exception are not serialized due to security and accesses to
+ the state entries after serialization will return null.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The internal context.
+ The inner exception.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message.
+
+
+
+ Initializes a new instance of the class.
+
+ The message.
+ The inner exception.
+
+
+
+ Subscribes the SerializeObjectState event.
+
+
+
+
+ Gets objects that represents the entities that could not
+ be saved to the database.
+
+ The entries representing the entities that could not be saved.
+
+
+
+ Holds exception state that will be serialized when the exception is serialized.
+
+
+
+
+ Completes the deserialization.
+
+ The deserialized object.
+
+
+
+ Gets or sets a value indicating whether the exception involved independent associations.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The context.
+ The inner exception.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message.
+
+
+
+ Initializes a new instance of the class.
+
+ The message.
+ The inner exception.
+
+
+
+ Returned by the Configuration method of to provide access to configuration
+ options for the context.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The internal context.
+
+
+
+ Gets or sets a value indicating whether lazy loading of relationships exposed as
+ navigation properties is enabled. Lazy loading is enabled by default.
+
+ true if lazy loading is enabled; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether or not the framework will create instances of
+ dynamically generated proxy classes whenever it creates an instance of an entity type.
+ Note that even if proxy creation is enabled with this flag, proxy instances will only
+ be created for entity types that meet the requirements for being proxied.
+ Proxy creation is enabled by default.
+
+ true if proxy creation is enabled; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether tracked entities should be validated automatically when
+ is invoked.
+ The default value is true.
+
+
+
+
+ A non-generic version of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entry.
+
+
+
+ Queries the database for copies of the values of the tracked entity as they currently exist in the database.
+ Note that changing the values in the returned dictionary will not update the values in the database.
+ If the entity is not found in the database then null is returned.
+
+ The store values.
+
+
+
+ Reloads the entity from the database overwriting any property values with values from the database.
+ The entity will be in the Unchanged state after calling this method.
+
+
+
+
+ Gets an object that represents the reference (i.e. non-collection) navigation property from this
+ entity to another entity.
+
+ The name of the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents the collection navigation property from this
+ entity to a collection of related entities.
+
+ The name of the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents a scalar or complex property of this entity.
+
+ The name of the property.
+ An object representing the property.
+
+
+
+ Gets an object that represents a complex property of this entity.
+
+ The name of the complex property.
+ An object representing the complex property.
+
+
+
+ Gets an object that represents a member of the entity. The runtime type of the returned object will
+ vary depending on what kind of member is asked for. The currently supported member types and their return
+ types are:
+ Reference navigation property: .
+ Collection navigation property: .
+ Primitive/scalar property: .
+ Complex property: .
+
+ The name of the member.
+ An object representing the member.
+
+
+
+ Returns a new instance of the generic class for the given
+ generic type for the tracked entity represented by this object.
+ Note that the type of the tracked entity must be compatible with the generic type or
+ an exception will be thrown.
+
+ The type of the entity.
+ A generic version.
+
+
+
+ Validates this instance and returns validation result.
+
+
+ Entity validation result. Possibly null if
+ method is overridden.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+ Two instances are considered equal if they are both entries for
+ the same entity on the same .
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+ Two instances are considered equal if they are both entries for
+ the same entity on the same .
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Gets the entity.
+
+ The entity.
+
+
+
+ Gets or sets the state of the entity.
+
+ The state.
+
+
+
+ Gets the current property values for the tracked entity represented by this object.
+
+ The current values.
+
+
+
+ Gets the original property values for the tracked entity represented by this object.
+ The original values are usually the entity's property values as they were when last queried from
+ the database.
+
+ The original values.
+
+
+
+ Gets InternalEntityEntry object for this DbEntityEntry instance.
+
+
+
+
+ Instances of this class provide access to information about and control of entities that
+ are being tracked by the . Use the Entity or Entities methods of
+ the context to obtain objects of this type.
+
+ The type of the entity.
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entry.
+
+
+
+ Queries the database for copies of the values of the tracked entity as they currently exist in the database.
+ Note that changing the values in the returned dictionary will not update the values in the database.
+ If the entity is not found in the database then null is returned.
+
+ The store values.
+
+
+
+ Reloads the entity from the database overwriting any property values with values from the database.
+ The entity will be in the Unchanged state after calling this method.
+
+
+
+
+ Gets an object that represents the reference (i.e. non-collection) navigation property from this
+ entity to another entity.
+
+ The name of the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents the reference (i.e. non-collection) navigation property from this
+ entity to another entity.
+
+ The type of the property.
+ The name of the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents the reference (i.e. non-collection) navigation property from this
+ entity to another entity.
+
+ The type of the property.
+ An expression representing the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents the collection navigation property from this
+ entity to a collection of related entities.
+
+ The name of the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents the collection navigation property from this
+ entity to a collection of related entities.
+
+ The type of elements in the collection.
+ The name of the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents the collection navigation property from this
+ entity to a collection of related entities.
+
+ The type of elements in the collection.
+ An expression representing the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents a scalar or complex property of this entity.
+
+ The name of the property.
+ An object representing the property.
+
+
+
+ Gets an object that represents a scalar or complex property of this entity.
+
+ The type of the property.
+ The name of the property.
+ An object representing the property.
+
+
+
+ Gets an object that represents a scalar or complex property of this entity.
+
+ The type of the property.
+ An expression representing the property.
+ An object representing the property.
+
+
+
+ Gets an object that represents a complex property of this entity.
+
+ The name of the complex property.
+ An object representing the complex property.
+
+
+
+ Gets an object that represents a complex property of this entity.
+
+ The type of the complex property.
+ The name of the complex property.
+ An object representing the complex property.
+
+
+
+ Gets an object that represents a complex property of this entity.
+
+ The type of the complex property.
+ An expression representing the complex property.
+ An object representing the complex property.
+
+
+
+ Gets an object that represents a member of the entity. The runtime type of the returned object will
+ vary depending on what kind of member is asked for. The currently supported member types and their return
+ types are:
+ Reference navigation property: .
+ Collection navigation property: .
+ Primitive/scalar property: .
+ Complex property: .
+
+ The name of the member.
+ An object representing the member.
+
+
+
+ Gets an object that represents a member of the entity. The runtime type of the returned object will
+ vary depending on what kind of member is asked for. The currently supported member types and their return
+ types are:
+ Reference navigation property: .
+ Collection navigation property: .
+ Primitive/scalar property: .
+ Complex property: .
+
+ The type of the member.
+ The name of the member.
+ An object representing the member.
+
+
+
+ Returns a new instance of the non-generic class for
+ the tracked entity represented by this object.
+
+ A non-generic version.
+
+
+
+ Validates this instance and returns validation result.
+
+
+ Entity validation result. Possibly null if
+ method is overridden.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+ Two instances are considered equal if they are both entries for
+ the same entity on the same .
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+ Two instances are considered equal if they are both entries for
+ the same entity on the same .
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Gets the entity.
+
+ The entity.
+
+
+
+ Gets or sets the state of the entity.
+
+ The state.
+
+
+
+ Gets the current property values for the tracked entity represented by this object.
+
+ The current values.
+
+
+
+ Gets the original property values for the tracked entity represented by this object.
+ The original values are usually the entity's property values as they were when last queried from
+ the database.
+
+ The original values.
+
+
+
+ An immutable representation of an Entity Data Model (EDM) model that can be used to create an
+ or can be passed to the constructor of a .
+ For increased performance, instances of this type should be cached and re-used to construct contexts.
+
+
+
+
+ Creates a model for the given EDM metadata model.
+
+ The EDM metadata model.
+
+
+
+ Creates an instance of ObjectContext or class derived from ObjectContext. Note that an instance
+ of DbContext can be created instead by using the appropriate DbContext constructor.
+ If a derived ObjectContext is used, then it must have a public constructor with a single
+ EntityConnection parameter.
+ The connection passed is used by the ObjectContext created, but is not owned by the context. The caller
+ must dispose of the connection once the context has been disposed.
+
+ The type of context to create.
+ An existing connection to a database for use by the context.
+
+
+
+
+ Gets a cached delegate (or creates a new one) used to call the constructor for the given derived ObjectContext type.
+
+
+
+
+ A hash of the store model (SSDL) that can be used later to check if the model has changed or not.
+ Note that this is currently only supported for Code First.
+
+
+
+
+ A collection of all the properties for an underlying entity or complex object.
+
+
+ An instance of this class can be converted to an instance of the generic class
+ using the Cast method.
+ Complex properties in the underlying entity or complex object are represented in
+ the property values as nested instances of this class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The internal dictionary.
+
+
+
+ Creates an object of the underlying type for this dictionary and hydrates it with property
+ values from this dictionary.
+
+ The properties of this dictionary copied into a new object.
+
+
+
+ Sets the values of this dictionary by reading values out of the given object.
+ The given object can be of any type. Any property on the object with a name that
+ matches a property name in the dictionary and can be read will be read. Other
+ properties will be ignored. This allows, for example, copying of properties from
+ simple Data Transfer Objects (DTOs).
+
+ The object to read values from.
+
+
+
+ Creates a new dictionary containing copies of all the properties in this dictionary.
+ Changes made to the new dictionary will not be reflected in this dictionary and vice versa.
+
+ A clone of this dictionary.
+
+
+
+ Sets the values of this dictionary by reading values from another dictionary.
+ The other dictionary must be based on the same type as this dictionary, or a type derived
+ from the type for this dictionary.
+
+ The dictionary to read values from.
+
+
+
+ Gets the value of the property just like using the indexed property getter but
+ typed to the type of the generic parameter. This is useful especially with
+ nested dictionaries to avoid writing expressions with lots of casts.
+
+ The type of the property.
+ Name of the property.
+ The value of the property.
+
+
+
+ Gets the set of names of all properties in this dictionary as a read-only set.
+
+ The property names.
+
+
+
+ Gets or sets the value of the property with the specified property name.
+ The value may be a nested instance of this class.
+
+ The property name.
+ The value of the property.
+
+
+
+ Gets the internal dictionary.
+
+ The internal dictionary.
+
+
+
+ A non-generic version of the class.
+
+
+
+
+ Creates a from information in the given .
+ Use this method in preference to the constructor since it may potentially create a subclass depending on
+ the type of member represented by the InternalCollectionEntry instance.
+
+ The internal reference entry.
+ The new entry.
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entry.
+
+
+
+ Loads the entity from the database.
+ Note that if the entity already exists in the context, then it will not overwritten with values from the database.
+
+
+
+
+ Returns the query that would be used to load this entity from the database.
+ The returned query can be modified using LINQ to perform filtering or operations in the database.
+
+ A query for the entity.
+
+
+
+ Returns the equivalent generic object.
+
+ The type of entity on which the member is declared.
+ The type of the property.
+ The equivalent generic object.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the current value of the navigation property. The current value is
+ the entity that the navigation property references.
+
+ The current value.
+
+
+
+ Gets a value indicating whether the entity has been loaded from the database.
+
+ true if the entity is loaded; otherwise, false.
+
+
+
+ The to which this navigation property belongs.
+
+ An entry for the entity that owns this navigation property.
+
+
+
+ Gets the backing this object as an .
+
+ The internal member entry.
+
+
+
+ Instances of this class are returned from the Reference method of
+ and allow operations such as loading to
+ be performed on the an entity's reference navigation properties.
+
+ The type of the entity to which this property belongs.
+ The type of the property.
+
+
+
+ Creates a from information in the given .
+ Use this method in preference to the constructor since it may potentially create a subclass depending on
+ the type of member represented by the InternalCollectionEntry instance.
+
+ The internal reference entry.
+ The new entry.
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entry.
+
+
+
+ Loads the entity from the database.
+ Note that if the entity already exists in the context, then it will not overwritten with values from the database.
+
+
+
+
+ Returns the query that would be used to load this entity from the database.
+ The returned query can be modified using LINQ to perform filtering or operations in the database.
+
+ A query for the entity.
+
+
+
+ Returns a new instance of the non-generic class for
+ the navigation property represented by this object.
+
+ A non-generic version.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the current value of the navigation property. The current value is
+ the entity that the navigation property references.
+
+ The current value.
+
+
+
+ Gets a value indicating whether the entity has been loaded from the database.
+
+ true if the entity is loaded; otherwise, false.
+
+
+
+ Gets the underlying as an .
+
+ The internal member entry.
+
+
+
+ The to which this navigation property belongs.
+
+ An entry for the entity that owns this navigation property.
+
+
+
+ Represents an entity used to store metadata about an EDM in the database.
+
+
+
+
+ Attempts to get the model hash calculated by Code First for the given context.
+ This method will return null if the context is not being used in Code First mode.
+
+ The context.
+ The hash string.
+
+
+
+ Gets or sets the ID of the metadata entity, which is currently always 1.
+
+ The id.
+
+
+
+ Gets or sets the model hash which is used to check whether the model has
+ changed since the database was created from it.
+
+ The model hash.
+
+
+
+ This attribute can be applied to either an entire derived class or to
+ individual or properties on that class. When applied
+ any discovered or properties will still be included
+ in the model but will not be automatically initialized.
+
+
+
+
+ Generic wrapper around to allow results to be
+ returned as generic
+
+ The type of the element.
+
+
+
+ Executes the query and returns an enumerator for the elements.
+
+ An object that can be used to iterate through the elements.
+
+
+
+ Executes the query and returns an enumerator for the elements.
+
+
+ An object that can be used to iterate through the elements.
+
+
+
+
+ Returns a that contains the SQL string that was set
+ when the query was created. The parameters are not included.
+
+
+ A that represents this instance.
+
+
+
+
+ Throws an exception indicating that binding directly to a store query is not supported.
+
+
+ Never returns; always throws.
+
+
+
+
+ Returns false.
+
+ false.
+
+
+
+ Implements ICachedMetadataWorkspace for a Code First model.
+
+
+
+
+ Represents an object that holds a cached copy of a MetadataWorkspace and optionally the
+ assemblies containing entity types to use with that workspace.
+
+
+
+
+ Gets the MetadataWorkspace, potentially lazily creating it if it does not already exist.
+ If the workspace is not compatible with the provider manifest obtained from the given
+ connection then an exception is thrown.
+
+ The connection to use to create or check SSDL provider info.
+ The workspace.
+
+
+
+ The list of assemblies that contain entity types for this workspace, which may be empty, but
+ will never be null.
+
+
+
+
+ An SHA256 hash of the store model (SSDL) that can be used later to check if the model has changed or not.
+ Note that this is currently only supported for Code First.
+
+
+
+
+ The default container name for code first is the container name that is set from the DbModelBuilder
+
+
+
+
+ Builds and stores the workspace based on the given code first configuration.
+
+ The code first EDM model.
+
+
+
+ Gets the .
+ If the workspace is not compatible with the provider manifest obtained from the given
+ connection then an exception is thrown.
+
+ The connection to use to create or check SSDL provider info.
+ The workspace.
+
+
+
+ The default container name for code first is the container name that is set from the DbModelBuilder
+
+
+
+
+ The list of assemblies that contain entity types for this workspace, which may be empty, but
+ will never be null.
+
+
+
+
+ An SHA256 hash of the store model (SSDL) that can be used later to check if the model has changed or not.
+
+
+
+
+ Encapsulates information read from the application config file that specifies a database initializer
+ and allows that initializer to be dynamically applied.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The key from the entry in the config file.
+ The value from the enrty in the config file.
+
+
+
+ Uses the context type and initializer type specified in the config to create an initializer instance
+ and set it with the DbDbatabase.SetInitializer method.
+
+
+
+
+ Reads all initializers from the application config file and sets them using the Database class.
+
+
+
+
+ The methods here are called from multiple places with an ObjectContext that may have
+ been created in a variety of ways and ensure that the same code is run regardless of
+ how the context was created.
+
+
+
+
+ Used a delegate to do the actual creation once an ObjectContext has been obtained.
+ This is factored in this way so that we do the same thing regardless of how we get to
+ having an ObjectContext.
+ Note however that a context obtained from only a connection will have no model and so
+ will result in an empty database.
+
+
+
+
+ Used a delegate to do the actual checking/creation once an ObjectContext has been obtained.
+ This is factored in this way so that we do the same thing regardless of how we get to
+ having an ObjectContext.
+ Note however that a context obtained from only a connection will have no model and so
+ will result in an empty database.
+
+
+
+
+ Used a delegate to do the actual existence check once an ObjectContext has been obtained.
+ This is factored in this way so that we do the same thing regardless of how we get to
+ having an ObjectContext.
+
+
+
+
+ Used a delegate to do the actual check/delete once an ObjectContext has been obtained.
+ This is factored in this way so that we do the same thing regardless of how we get to
+ having an ObjectContext.
+
+
+
+
+ Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names.
+
+
+
+
+ Creates a new pair of the given set of entity types and DbSet initializer delegate.
+
+
+
+
+ The entity types part of the pair.
+
+
+
+
+ The DbSet properties initializer part of the pair.
+
+
+
+
+ Static helper methods only.
+
+
+
+
+ Checks whether the given value is null and throws ArgumentNullException if it is.
+ This method should only be used in places where Code Contracts are compiled out in the
+ release build but we still need public surface null-checking, such as where a public
+ abstract class is implemented by an internal concrete class.
+
+
+
+
+ Checks whether the given string is null, empty, or just whitespace, and throws appropriately
+ if the check fails.
+ This method should only be used in places where Code Contracts are compiled out in the
+ release build but we still need public surface checking, such as where a public
+ abstract class is implemented by an internal concrete class.
+
+
+
+
+ Given two key values that may or may not be byte arrays, this method determines
+ whether or not they are equal. For non-binary key values, this is equivalent
+ to Object.Equals. For binary keys, it is by comparison of every byte in the
+ arrays.
+
+
+
+
+ Provides a standard helper method for quoting identifiers
+
+ Identifier to be quoted. Does not validate that this identifier is valid.
+ Quoted string
+
+
+
+ Checks the given string which might be a database name or a connection string and determines
+ whether it should be treated as a name or connection string. Currently, the test is simply
+ whether or not the string contains an '=' character--if it does, then it should be treated
+ as a connection string.
+
+ The name or connection string.
+ true if the string should be treated as a connection string; false if it should be treated as a name.
+
+
+
+ Determines whether the given string should be treated as a database name directly (it contains no '='),
+ is in the form name=foo, or is some other connection string. If it is a direct name or has name=, then
+ the name is extracted and the method returns true.
+
+ The name or connection string.
+ The name.
+ True if a name is found; false otherwise.
+
+
+
+ Determines whether the given string is a full EF connection string with provider, provider connection string,
+ and metadata parts, or is is instead some other form of connection string.
+
+ The name or connection string.
+ true if the given string is an EF connection string; otherwise, false.
+
+
+
+
+ Parses a property selector expression used for the expression-based versions of the Property, Collection, Reference,
+ etc methods on and
+ classes.
+
+ The type of the entity.
+ The type of the property.
+ The property.
+ Name of the method.
+ Name of the param.
+ The property name.
+
+
+
+ Called recursively to parse an expression tree representing a property path such
+ as can be passed to Include or the Reference/Collection/Property methods of .
+ This involves parsing simple property accesses like o => o.Products as well as calls to Select like
+ o => o.Products.Select(p => p.OrderLines).
+
+ The expression to parse.
+ The expression parsed into an include path, or null if the expression did not match.
+ True if matching succeeded; false if the expression could not be parsed.
+
+
+
+ Gets a cached dictionary mapping property names to property types for all the properties
+ in the given type.
+
+
+
+
+ Gets a dictionary of compiled property setter delegates for the underlying types.
+ The dictionary is cached for the type in the app domain.
+
+
+
+
+ Used by the property setter delegates to throw for attempts to set null onto
+ non-nullable properties or otherwise go ahead and set the property.
+
+
+
+
+ Gets a dictionary of compiled property getter delegates for the underlying types.
+ The dictionary is cached for the type in the app domain.
+
+
+
+
+ Creates a new with the NoTracking merge option applied.
+ The query object passed in is not changed.
+
+ The query.
+ A new query with NoTracking applied.
+
+
+
+ Converts to
+
+
+ Name of the property being validated with ValidationAttributes. Null for type-level validation.
+
+
+ ValidationResults instances to be converted to instances.
+
+
+ An created based on the
+ .
+
+
+ class contains a property with names of properties the error applies to.
+ On the other hand each applies at most to a single property. As a result for
+ each name in ValidationResult.MemberNames one will be created (with some
+ exceptions for special cases like null or empty .MemberNames or null names in the .MemberNames).
+
+
+
+
+ Calculates a "path" to a property. For primitive properties on an entity type it is just the
+ name of the property. Otherwise it is a dot separated list of names of the property and all
+ its ancestor properties starting from the entity.
+
+ Property for which to calculate the path.
+ Dot separated path to the property.
+
+
+
+ Gets names of the property and its ancestor properties as enumerable walking "bottom-up".
+
+ Property for which to get the segments.
+ Names of the property and its ancestor properties.
+
+
+
+ Gets an type for the given element type.
+
+ Type of the element.
+ The collection type.
+
+
+
+ Creates a database name given a type derived from DbContext. This handles nested and
+ generic classes. No attempt is made to ensure that the name is not too long since this
+ is provider specific. If a too long name is generated then the provider will throw and
+ the user must correct by specifying their own name in the DbContext constructor.
+
+ Type of the context.
+ The database name to use.
+
+
+
+ Creates a clone of the given that has the same connection and
+ loaded metadata as the original but a new, empty, state manager.
+
+ The original.
+ The clone.
+
+
+
+ Finds the assemblies that were used for loading o-space types in the source context
+ and loads those assemblies in the destination context.
+
+ The source.
+ The destination.
+
+
+
+ A local (in-memory) view of the entities in a DbSet.
+ This view contains Added entities and does not contain Deleted entities. The view extends
+ from and hooks up events between the collection and the
+ state manager to keep the view in sync.
+
+ The type of the entity.
+
+
+
+ Initializes a new instance of the class for entities
+ of the given generic type in the given internal context.
+
+ The internal context.
+
+
+
+ Called by the base class when the collection changes.
+ This method looks at the change made to the collection and reflects those changes in the
+ state manager.
+
+ The instance containing the event data.
+
+
+
+ Handles events from the state manager for entities entering, leaving, or being marked as deleted.
+ The local view is kept in sync with these changes.
+
+ The sender.
+ The instance containing the event data.
+
+
+
+ Clears the items by calling remove on each item such that we get Remove events that
+ can be tracked back to the state manager, rather than a single Reset event that we
+ cannot deal with.
+
+
+
+
+ Adds a contains check to the base implementation of InsertItem since we can't support
+ duplicate entities in the set.
+
+ The index at which to insert.
+ The item to insert.
+
+
+
+ Returns a cached binding list implementation backed by this ObservableCollection.
+
+ The binding list.
+
+
+
+ Service used to search for instance properties on a DbContext class that can
+ be assigned a DbSet instance. Also, if the the property has a public setter,
+ then a delegate is compiled to set the property to a new instance of DbSet.
+ All of this information is cached per app domain.
+
+
+
+
+ Creates a set discovery service for the given derived context.
+
+
+
+
+ Processes the given context type to determine the DbSet or IDbSet
+ properties and collect root entity types from those properties. Also, delegates are
+ created to initialize any of these properties that have public setters.
+ If the type has been processed previously in the app domain, then all this information
+ is returned from a cache.
+
+ A dictionary of potential entity type to the list of the names of the properties that used the type.
+
+
+
+ Calls the public setter on any property found to initialize it to a new instance of DbSet.
+
+
+
+
+ Registers the entities and their entity set name hints with the given .
+
+ The model builder.
+
+
+
+ Returns false if SuppressDbSetInitializationAttribute is found on the property or the class, otherwise
+ returns true.
+
+
+
+
+ Determines whether or not an instance of DbSet/ObjectSet can be assigned to a property of the given type.
+
+ The type to check.
+ The entity type of the DbSet/ObjectSet that can be assigned, or null if no set type can be assigned.
+
+
+
+
+ A EagerInternalConnection object wraps an already existing DbConnection object.
+
+
+
+
+ InternalConnection objects manage DbConnections.
+ Two concrete base classes of this abstract interface exist:
+ and .
+
+
+
+
+ IInternalConnection objects manage DbConnections.
+ Two concrete implementations of this interface exist--LazyInternalConnection and EagerInternalConnection.
+
+
+
+
+ Creates an from metadata in the connection. This method must
+ only be called if ConnectionHasModel returns true.
+
+ The newly created context.
+
+
+
+ Returns the underlying DbConnection.
+
+
+
+
+ Returns a key consisting of the connection type and connection string.
+ If this is an EntityConnection then the metadata path is included in the key returned.
+
+
+
+
+ Gets a value indicating whether the connection is an EF connection which therefore contains
+ metadata specifying the model, or instead is a store connection, in which case it contains no
+ model info.
+
+ true if the connection contains model info; otherwise, false.
+
+
+
+ Creates an from metadata in the connection. This method must
+ only be called if ConnectionHasModel returns true.
+
+ The newly created context.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Returns the underlying DbConnection.
+
+
+
+
+ Returns a key consisting of the connection type and connection string.
+ If this is an EntityConnection then the metadata path is included in the key returned.
+
+
+
+
+
+ Gets a value indicating whether the connection is an EF connection which therefore contains
+ metadata specifying the model, or instead is a store connection, in which case it contains no
+ model info.
+
+ true if the connection contains model info; otherwise, false.
+
+
+
+ Gets or sets the underlying object. No initialization is done when the
+ connection is obtained, and it can also be set to null.
+
+ The underlying connection.
+
+
+
+ Creates a new EagerInternalConnection that wraps an existing DbConnection. The existing DbConnection will not
+ be disposed when the EagerInternalConnection is disposed.
+
+ An existing connection.
+ If set to true then the underlying connection should be disposed when this object is disposed.
+
+
+
+ Dispose the existing connection is the original caller has specified that it should be disposed
+ by the framework.
+
+
+
+
+ An is an where the
+ instance that it wraps is set immediately at construction time rather than being created lazily. In this case
+ the internal context may or may not own the instance but will only dispose it
+ if it does own it.
+
+
+
+
+ An underlies every instance of and wraps an
+ instance.
+ The also acts to expose necessary information to other parts of the design in a
+ controlled manner without adding a lot of internal methods and properties to the
+ class itself.
+ Two concrete classes derive from this abstract class - and
+ .
+
+
+
+
+ Initializes the object with its owner.
+
+ The owner .
+
+
+
+ Returns the underlying without causing the underlying database to be created
+ or the database initialization strategy to be executed.
+ This is used to get a context that can then be used for database creation/initialization.
+
+
+
+
+ Creates a new temporary based on the same metadata and connection as the real
+ and sets it as the context to use DisposeTempObjectContext is called.
+ This allows this internal context and its DbContext to be used for transient operations
+ such as initializing and seeding the database, after which it can be thrown away.
+ This isolates the real from any changes made and and saves performed.
+
+
+
+
+ If a temporary ObjectContext was set with UseTempObjectContext, then this method disposes that context
+ and returns this internal context and its DbContext to using the real ObjectContext.
+
+
+
+
+ This method returns true if the context has a model hash and the database contains a model hash
+ and these hashes match. This indicates that the model used to create the database is the same
+ as the current model and so the two can be used together.
+
+ If set to true then an exception will be thrown if no
+ model metadata is found either in the model associated with the context or in the database
+ itself. If set to false then this method will return true if metadata is
+ not found.
+ True if the model hash in the context and the database match; false otherwise.
+
+
+
+ Queries the database for a model hash and returns it if found or returns null if the table
+ or the row doesn't exist in the database.
+
+ The model hash, or null if not found.
+
+
+
+ Saves the model hash from the context to the database.
+
+
+
+
+ Performs the initialization action that may result in a and
+ handle the exception to provide more meaning to the user.
+
+ The action.
+
+
+
+ Registers for the ObjectStateManagerChanged event on the underlying ObjectStateManager.
+ This is a virtual method on this class so that it can be mocked.
+
+ The event handler.
+
+
+
+ Checks whether or not the given object is in the context in any state other than Deleted.
+ This is a virtual method on this class so that it can be mocked.
+
+ The entity.
+ true if the entity is in the context and not deleted; otherwise false.
+
+
+
+ Saves all changes made in this context to the underlying database.
+
+ The number of objects written to the underlying database.
+
+
+
+ Runs the Code First pipeline to create a that can then be used to create
+ an EDMX. This method throws if the context:
+ was created based on an existing
+ or was created from information in an existing
+ or is being used in Model/Database First mode.
+ This method always runs the full Code First pipeline, including calling OnModelCreating, even if
+ the pipeline has already been run.
+
+ The builder.
+
+
+
+ Initializes this instance, which means both the context is initialized and the underlying
+ database is initialized.
+
+
+
+
+ Initializes the underlying ObjectContext but does not cause the database to be initialized.
+
+
+
+
+ Runs the unless it has already been run or there
+ is no initializer for this context type in which case this method does nothing.
+
+
+
+
+ Marks the database as having been initialized without actually running the .
+
+
+
+
+ Runs the if one has been set for this context type.
+ Calling this method will always cause the initializer to run even if the database is marked
+ as initialized.
+
+
+
+
+ Disposes the context. Override the DisposeContext method to perform
+ additional work when disposing.
+
+
+
+
+ Performs additional work to dispose a context. The default implementation
+ does nothing.
+
+
+
+
+ Calls DetectChanges on the underlying if AutoDetectChangesEnabled is
+ true or if force is set to true.
+
+ if set to true then DetectChanges is called regardless of the value of AutoDetectChangesEnabled.
+
+
+
+ Returns the DbSet instance for the given entity type.
+ This property is virtual and returns to that it can be mocked.
+
+ The entity type for which a set should be returned.
+ A set for the given entity type.
+
+
+
+ Returns the non-generic instance for the given entity type.
+ This property is virtual and returns to that it can be mocked.
+
+ The entity type for which a set should be returned.
+ A set for the given entity type.
+
+
+
+ Creates an internal set using an app domain cached delegate.
+
+ Type of the entity.
+ The set.
+
+
+
+ Returns the entity set and the base type for that entity set for the given type.
+ This method does o-space loading if required and throws if the type is not in the model.
+
+ The entity type to lookup.
+ The entity set and base type pair.
+
+
+
+ Checks whether or not the given entity type is mapped in the model.
+
+ The entity type to lookup.
+ True if the type is mapped as an entity; false otherwise.
+
+
+
+ Gets the local entities of the type specified from the state manager. That is, all
+ Added, Modified, and Unchanged entities of the given type.
+
+ The type of entity to get.
+ The entities.
+
+
+
+ Executes the given SQL query against the database backing this context. The results are not materialized as
+ entities or tracked.
+
+ The type of the element.
+ The SQL.
+ The parameters.
+ The query results.
+
+
+
+ Executes the given SQL query against the database backing this context. The results are not materialized as
+ entities or tracked.
+
+ Type of the element.
+ The SQL.
+ The parameters.
+ The query results.
+
+
+
+ Calls the generic ExecuteSqlQuery but with a non-generic return type so that it
+ has the correct signature to be used with CreateDelegate above.
+
+
+
+
+ Executes the given SQL command against the database backing this context.
+
+ The SQL.
+ The parameters.
+ The return value from the database.
+
+
+
+ Gets the underlying for the given entity, or returns null if the entity isn't tracked by this context.
+ This method is virtual so that it can be mocked.
+
+ The entity.
+ The state entry or null.
+
+
+
+ Gets the underlying objects for all entities tracked by
+ this context.
+ This method is virtual so that it can be mocked.
+
+ State entries for all tracked entities.
+
+
+
+ Gets the underlying objects for all entities of the given
+ type tracked by this context.
+ This method is virtual so that it can be mocked.
+
+ The type of the entity.
+ State entries for all tracked entities of the given type.
+
+
+
+ Helper method that gets the underlying objects for all entities that
+ match the given predicate.
+
+
+
+
+ Wraps the given in either a or
+ a depending on the actual exception type and the state
+ entries involved.
+
+ The update exception.
+ A new exception wrapping the given exception.
+
+
+
+ Uses the underlying context to create an entity such that if the context is configured
+ to create proxies and the entity is suitable then a proxy instance will be returned.
+ This method is virtual so that it can be mocked.
+
+ The type of the entity.
+ The new entity instance.
+
+
+
+ Uses the underlying context to create an entity such that if the context is configured
+ to create proxies and the entity is suitable then a proxy instance will be returned.
+ This method is virtual so that it can be mocked.
+
+ The type of entity to create.
+ The new entity instance.
+
+
+
+ This method is used by CreateDelegate to transform the CreateObject method with return type TEntity
+ into a method with return type object which matches the required type of the delegate.
+
+
+
+
+ Throws if the context has been disposed.
+
+
+
+
+ Checks whether or not the internal cache of types to entity sets has been initialized,
+ and initializes it if necessary.
+
+
+
+
+ Performs o-space loading for the type and returns false if the type is not in the model.
+
+
+
+
+ Performs o-space loading for the type and throws if the type is not in the model.
+
+ Type of the entity.
+
+
+
+ Returns true if the given entity type does not have EdmEntityTypeAttribute but is in
+ an assembly that has EdmSchemaAttribute. This indicates mixing of POCO and EOCO in the
+ same assembly, which is something that we don't support.
+
+
+
+
+ Determines whether or not the given clrType is mapped to a complex type. Assumes o-space loading has happened.
+
+
+
+
+ Updates the cache of types to entity sets either for the first time or after potentially
+ doing some o-space loading.
+
+
+
+
+ The public context instance that owns this internal context.
+
+
+
+
+ Returns the underlying .
+
+
+
+
+ Gets the temp object context, or null if none has been set.
+
+ The temp object context.
+
+
+
+ An SHA256 hash of the store model (SSDL) that can be used later to check if the model has changed or not.
+ Note that this is currently only supported for Code First.
+
+
+
+
+ Gets the default database initializer to use for this context if no other has been registered.
+ For code first this property returns a instance.
+ For database/model first, this property returns null.
+
+ The default initializer.
+
+
+
+ Gets or sets a value indicating whether lazy loading is enabled.
+
+
+
+
+ Gets or sets a value indicating whether proxy creation is enabled.
+
+
+
+
+ Gets or sets a value indicating whether DetectChanges is called automatically in the API.
+
+
+
+
+ Gets or sets a value indicating whether to validate entities when is called.
+
+
+
+
+ True if the context has been disposed.
+
+
+
+
+ The connection underlying this context. Accessing this property does not cause the context
+ to be initialized, only its connection.
+
+
+
+
+ Gets the DatabaseOperations instance to use to perform Create/Delete/Exists operations
+ against the database.
+ Note that this virtual property can be mocked to help with unit testing.
+
+
+
+
+ Gets instance used to create validators and validation contexts.
+ This property is virtual to allow mocking.
+
+
+
+
+ Constructs an for an already existing .
+
+ The owner .
+ The existing .
+
+
+
+ Returns the underlying without causing the underlying database to be created
+ or the database initialization strategy to be executed.
+ This is used to get a context that can then be used for database creation/initialization.
+
+
+
+
+ Throws an exception since creating a from a context created using
+ an existing is not supported.
+
+ This method never returns.
+
+
+
+ Does nothing, since the already exists.
+
+
+
+
+ Does nothing since the database is always considered initialized if the was created
+ from an existing .
+
+
+
+
+ Does nothing since the database is always considered initialized if the was created
+ from an existing .
+
+
+
+
+ Disposes the context. The underlying is also disposed if it is owned.
+
+
+
+
+ Returns the underlying .
+
+
+
+
+ An SHA256 hash of the store model (SSDL) that can be used later to check if the model has changed or not.
+ Note that this is currently only supported for Code First.
+
+
+
+
+ Gets the default database initializer to use for this context if no other has been registered.
+ For code first this property returns a instance.
+ For database/model first, this property returns null.
+
+ The default initializer.
+
+
+
+ The connection underlying this context.
+
+
+
+
+ Gets or sets a value indicating whether lazy loading is enabled. This is just a wrapper
+ over the same flag in the underlying .
+
+
+
+
+ Gets or sets a value indicating whether proxy creation is enabled. This is just a wrapper
+ over the same flag in the underlying ObjectContext.
+
+
+
+
+ Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names.
+
+
+
+
+ Creates a new pair of the given EntitySet and BaseType.
+
+
+
+
+ The EntitySet part of the pair.
+
+
+
+
+ The BaseType part of the pair.
+
+
+
+
+ Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names.
+
+
+
+
+ Creates a new pair of the given database initializer delegate and a flag
+ indicating whether or not it is locked.
+
+
+
+
+ The initializer delegate.
+
+
+
+
+ A flag indicating whether or not the initializer is locked and should not be changed.
+
+
+
+
+ Represents a raw SQL query against the context for any type where the results are never
+ associated with an entity set and are never tracked.
+
+
+
+
+ Represents a raw SQL query against the context that may be for entities in an entity set
+ or for some other non-entity element type.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The SQL.
+ The parameters.
+
+
+
+ If the query is would track entities, then this method returns a new query that will
+ not track entities.
+
+ A no-tracking query.
+
+
+
+ Executes the query and returns an enumerator for the results.
+
+ The query results.
+
+
+
+ Throws an exception indicating that binding directly to a store query is not supported.
+
+
+ Never returns; always throws.
+
+
+
+
+ Returns a that contains the SQL string that was set
+ when the query was created. The parameters are not included.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets the SQL query string,
+
+ The SQL query.
+
+
+
+ Gets the parameters.
+
+ The parameters.
+
+
+
+ Returns false.
+
+ false.
+
+
+
+ Initializes a new instance of the class.
+
+ The internal context.
+ Type of the element.
+ The SQL.
+ The parameters.
+
+
+
+ Returns this query since it can never be a tracking query.
+
+ This instance.
+
+
+
+ Executes the query and returns an enumerator for the results.
+
+ The query results.
+
+
+
+ Represents a raw SQL query against the context for entities in an entity set.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The set.
+ The SQL.
+ if set to true then the entities will not be tracked.
+ The parameters.
+
+
+
+ If the query is would track entities, then this method returns a new query that will
+ not track entities.
+
+ A no-tracking query.
+
+
+
+ Executes the query and returns an enumerator for the results.
+
+ The query results.
+
+
+
+ Gets a value indicating whether this instance is set to track entities or not.
+
+
+ true if this instance is no-tracking; otherwise, false.
+
+
+
+
+ A LazyInternalConnection object manages information that can be used to create a DbConnection object and
+ is responsible for creating that object and disposing it.
+
+
+
+
+ Creates a new LazyInternalConnection. The DbConnection object will be created lazily on demand and will be
+ disposed when the LazyInternalConnection is disposed.
+
+ Either the database name or a connection string.
+
+
+
+ Creates an from metadata in the connection. This method must
+ only be called if ConnectionHasModel returns true.
+
+ The newly created context.
+
+
+
+ Disposes the underlying DbConnection.
+ Note that dispose actually puts the LazyInternalConnection back to its initial state such that
+ it can be used again.
+
+
+
+
+ Creates the underlying (which may actually be an )
+ if it does not already exist.
+
+
+
+
+ Searches the app.config/web.config file for a connection that matches the given name.
+ The connection might be a store connection or an EF connection.
+
+ The connection name.
+ True if a connection from the app.config file was found and used.
+
+
+
+ Returns the underlying DbConnection, creating it first if it does not already exist.
+
+
+
+
+ Returns a key consisting of the connection type and connection string.
+ If this is an EntityConnection then the metadata path is included in the key returned.
+
+
+
+
+
+ Gets a value indicating whether the connection is an EF connection which therefore contains
+ metadata specifying the model, or instead is a store connection, in which case it contains no
+ model info.
+
+ true if connection contain model info; otherwise, false.
+
+
+
+ A is a concrete type that will lazily create the
+ underlying when needed. The created is owned by the
+ internal context and will be disposed when the internal context is disposed.
+
+
+
+
+ Constructs a for the given owner that will be initialized
+ on first use.
+
+ The owner .
+ Responsible for creating a connection lazily when the context is used for the first time.
+ The model, or null if it will be created by convention
+
+
+
+ Returns the underlying without causing the underlying database to be created
+ or the database initialization strategy to be executed.
+ This is used to get a context that can then be used for database creation/initialization.
+
+
+
+
+ Saves all changes made in this context to the underlying database, but only if the
+ context has been initialized. If the context has not been initialized, then this
+ method does nothing because there is nothing to do; in particular, it does not
+ cause the context to be initialized.
+
+ The number of objects written to the underlying database.
+
+
+
+ Disposes the context. The underlying is also disposed.
+ The connection to the database ( object) is also disposed if it was created by
+ the context, otherwise it is not disposed.
+
+
+
+
+ Initializes the underlying .
+
+
+
+
+ Creates an immutable, cacheable representation of the model defined by this builder.
+ This model can be used to create an or can be passed to a
+ constructor to create a for this model.
+
+
+
+
+
+ Creates and configures the instance that will be used to build the
+ .
+
+ The builder.
+
+
+
+ Runs the Code First pipeline to create a that can then be used to create
+ an EDMX. This method throws if the context:
+ was created from information in an existing
+ or is being used in Model/Database First mode.
+ This method always runs the full Code First pipeline, including calling OnModelCreating, even if
+ the pipeline has already been run.
+
+ The builder.
+
+
+
+ Marks the database as having been initialized without actually running the .
+
+
+
+
+ Runs the unless it has already been run or there
+ is no initializer for this context type in which case this method does nothing.
+
+
+
+
+ Performs some action (which may do nothing) in such a way that it is guaranteed only to be run
+ once for the model and connection in this app domain, unless it fails by throwing an exception,
+ in which case it will be re-tried next time the context is initialized.
+
+ The action.
+
+
+
+ Returns the underlying .
+
+
+
+
+ An SHA256 hash of the store model (SSDL) that can be used later to check if the model has changed or not.
+ Note that this is currently only supported for Code First.
+
+
+
+
+ The actually being used, which may be the
+ temp context for initialization or the real context.
+
+
+
+
+ The connection underlying this context. Accessing this property does not cause the context
+ to be initialized, only its connection.
+
+
+
+
+ Gets the default database initializer to use for this context if no other has been registered.
+ For code first this property returns a instance.
+ For database/model first, this property returns null.
+
+ The default initializer.
+
+
+
+ Gets or sets a value indicating whether lazy loading is enabled.
+ If the exists, then this property acts as a wrapper over the flag stored there.
+ If the has not been created yet, then we store the value given so we can later
+ use it when we create the . This allows the flag to be changed, for example in
+ a DbContext constructor, without it causing the to be created.
+
+
+
+
+ Gets or sets a value indicating whether proxy creation is enabled.
+ If the ObjectContext exists, then this property acts as a wrapper over the flag stored there.
+ If the ObjectContext has not been created yet, then we store the value given so we can later
+ use it when we create the ObjectContext. This allows the flag to be changed, for example in
+ a DbContext constructor, without it causing the ObjectContext to be created.
+
+
+
+
+ Extends to create a sortable binding list that stays in
+ sync with an underlying . That is, when items are added
+ or removed from the binding list, they are added or removed from the ObservableCollecion, and
+ vice-versa.
+
+ The list element type.
+
+
+
+ An extended BindingList implementation that implements sorting.
+ This class was adapted from the LINQ to SQL class of the same name.
+
+ The element type.
+
+
+
+ Initializes a new instance of the class with the
+ the given underlying list. Note that sorting is dependent on having an actual
+ rather than some other ICollection implementation.
+
+ The list.
+
+
+
+ Applies sorting to the list.
+
+ The property to sort by.
+ The sort direction.
+
+
+
+ Stops sorting.
+
+
+
+
+ Gets a value indicating whether this list is sorted.
+
+
+ true if this instance is sorted; otherwise, false.
+
+
+
+
+ Gets the sort direction.
+
+ The sort direction.
+
+
+
+ Gets the sort property being used to sort.
+
+ The sort property.
+
+
+
+ Returns true indicating that this list supports sorting.
+
+ true.
+
+
+
+ Implements comparing for the implementation.
+
+
+
+
+ Initializes a new instance of the class
+ for sorting the list.
+
+ The property to sort by.
+ The sort direction.
+
+
+
+ Compares two instances of items in the list.
+
+ The left item to compare.
+ The right item to compare.
+
+
+
+
+ Determines whether this instance can sort for the specified type.
+
+ The type.
+
+ true if this instance can sort for the specified type; otherwise, false.
+
+
+
+
+ Determines whether this instance can sort for the specified type using IComparable.
+
+ The type.
+
+ true if this instance can sort for the specified type; otherwise, false.
+
+
+
+
+ Determines whether this instance can sort for the specified type using ToString.
+
+ The type.
+
+ true if this instance can sort for the specified type; otherwise, false.
+
+
+
+
+ Initializes a new instance of a binding list backed by the given
+
+ The obervable collection.
+
+
+
+ Creates a new item to be added to the binding list.
+
+ The new item.
+
+
+
+ Cancels adding of a new item that was started with AddNew.
+
+ Index of the item.
+
+
+
+ Removes all items from the binding list and underlying ObservableCollection.
+
+
+
+
+ Ends the process of adding a new item that was started with AddNew.
+
+ Index of the item.
+
+
+
+ Inserts the item into the binding list at the given index.
+
+ The index.
+ The item.
+
+
+
+ Removes the item at the specified index.
+
+ The index.
+
+
+
+ Sets the item into the list at the given position.
+
+ The index to insert at.
+ The item.
+
+
+
+ Event handler to update the binding list when the underlying observable collection changes.
+
+ The sender.
+ Data indicating how the collection has changed.
+
+
+
+ Adds the item to the underlying observable collection.
+
+ The item.
+
+
+
+ Removes the item from the underlying from observable collection.
+
+ The item.
+
+
+
+ A wrapper around EntityKey that allows key/values pairs that have null values to
+ be used. This allows Added entities with null key values to be searched for in
+ the ObjectStateManager.
+
+
+
+ The key name/key value pairs, where some key values may be null
+
+
+
+ Creates a new WrappedEntityKey instance.
+
+ The entity set that the key belongs to.
+ The fully qualified name of the given entity set.
+ The key values, which may be null or contain null values.
+ The name of the parameter passed for keyValue by the user, which is used when throwing exceptions.
+
+
+
+ True if any of the key values are null, which means that the EntityKey will also be null.
+
+
+
+
+ An actual EntityKey, or null if any of the key values are null.
+
+
+
+
+ The key name/key value pairs of the key, in which some of the key values may be null.
+
+
+
+
+ A concrete implementation of used for properties of complex objects.
+
+
+
+
+ The internal class used to implement and
+ .
+ This internal class contains all the common implementation between the generic and non-generic
+ entry classes and also allows for a clean internal factoring without compromising the public API.
+
+
+
+
+ Base class for all internal entries that represent different kinds of properties.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entity entry.
+ The member metadata.
+
+
+
+ Validates this property.
+
+ A sequence of validation errors for this property. Empty if no errors. Never null.
+
+
+
+ Creates a new non-generic backed by this internal entry.
+ The actual subtype of the DbMemberEntry created depends on the metadata of this internal entry.
+
+ The new entry.
+
+
+
+ Creates a new generic backed by this internal entry.
+ The actual subtype of the DbMemberEntry created depends on the metadata of this internal entry.
+
+ The type of the entity.
+ The type of the property.
+ The new entry.
+
+
+
+ Gets the property name.
+ The property is virtual to allow mocking.
+
+ The property name.
+
+
+
+ Gets or sets the current value of the navigation property.
+
+ The current value.
+
+
+
+ Gets the internal entity entry property belongs to.
+ This property is virtual to allow mocking.
+
+ The internal entity entry.
+
+
+
+ Gets the entry metadata.
+
+ The entry metadata.
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entry.
+ The property info.
+
+
+
+ Creates a delegate that will get the value of this property.
+
+ The delegate.
+
+
+
+ Creates a delegate that will set the value of this property.
+
+ The delegate.
+
+
+
+ Returns true if the property of the entity that this property is ultimately part
+ of is set as modified. If this is a property of an entity, then this method returns
+ true if the property is modified. If this is a property of a complex object, then
+ this method returns true if the top-level complex property on the entity is modified.
+
+ True if the entity property is modified.
+
+
+
+ Sets the property of the entity that this property is ultimately part of to modified.
+ If this is a property of an entity, then this method marks it as modified.
+ If this is a property of a complex object, then this method marks the top-level
+ complex property as modified.
+
+
+
+
+ Throws if the user attempts to set a complex property to null.
+
+ The value.
+
+
+
+ Sets the given value directly onto the underlying entity object.
+
+ The value.
+ True if the property had a setter that we could attempt to call; false if no setter was available.
+
+
+
+ Sets the property value, potentially by setting individual nested values for a complex
+ property.
+
+ The value.
+
+
+
+ Gets an internal object representing a scalar or complex property of this property,
+ which must be a mapped complex property.
+ This method is virtual to allow mocking.
+
+ The property.
+ The type of object requested, which may be null or 'object' if any type can be accepted.
+ if set to true then the found property must be a complex property.
+ The entry.
+
+
+
+ Validates that the owning entity entry is associated with an underlying and
+ is not just wrapping a non-attached entity.
+
+
+
+
+ Creates a new non-generic backed by this internal entry.
+ The runtime type of the DbMemberEntry created will be or a subtype of it.
+
+ The new entry.
+
+
+
+ Creates a new generic backed by this internal entry.
+ The runtime type of the DbMemberEntry created will be or a subtype of it.
+
+ The type of the entity.
+ The type of the property.
+ The new entry.
+
+
+
+ Returns parent property, or null if this is a property on the top-level entity.
+
+
+
+
+ Gets the current values of the parent entity or complex property.
+ That is, the current values that contains the value for this property.
+
+ The parent current values.
+
+
+
+ Gets the original values of the parent entity or complex property.
+ That is, the original values that contains the value for this property.
+
+ The parent original values.
+
+
+
+ A delegate that reads the value of this property.
+ May be null if there is no way to set the value due to missing accessors on the type.
+
+
+
+
+ A delegate that sets the value of this property.
+ May be null if there is no way to set the value due to missing accessors on the type.
+
+
+
+
+ Gets or sets the original value.
+ Note that complex properties are returned as objects, not property values.
+
+
+
+
+ Gets or sets the current value.
+ Note that complex properties are returned as objects, not property values.
+ Also, for complex properties, the object returned is the actual complex object from the entity
+ and setting the complex object causes the actual object passed to be set onto the entity.
+
+ The current value.
+
+
+
+ Gets or sets a value indicating whether this property is modified.
+
+
+
+
+ Gets the property metadata.
+
+ The property metadata.
+
+
+
+ Initializes a new instance of the class.
+
+ The parent property entry.
+ The property metadata.
+
+
+
+ Creates a delegate that will get the value of this property.
+
+ The delegate.
+
+
+
+ Creates a delegate that will set the value of this property.
+
+ The delegate.
+
+
+
+ Returns true if the property of the entity that this property is ultimately part
+ of is set as modified. Since this is a property of a complex object
+ this method returns true if the top-level complex property on the entity is modified.
+
+ True if the entity property is modified.
+
+
+
+ Sets the property of the entity that this property is ultimately part of to modified.
+ Since this is a property of a complex object this method marks the top-level
+ complex property as modified.
+
+
+
+
+ Returns parent property, or null if this is a property on the top-level entity.
+
+
+
+
+ Gets the current values of the parent complex property.
+ That is, the current values that contains the value for this property.
+
+ The parent current values.
+
+
+
+ Gets the original values of the parent complex property.
+ That is, the original values that contains the value for this property.
+
+ The parent original values.
+
+
+
+ Contains metadata about a member of an entity type or complex type.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type that the property is declared on.
+ Type of the property.
+ The property name.
+
+
+
+ Creates a new the runtime type of which will be
+ determined by the metadata.
+
+ The entity entry to which the member belongs.
+ The parent property entry if the new entry is nested, otherwise null.
+ The new entry.
+
+
+
+ Gets the type of the member for which this is metadata.
+
+ The type of the member entry.
+
+
+
+ Gets the name of the property.
+
+ The name.
+
+
+
+ Gets the type of the entity or complex object that on which the member is declared.
+
+ The type that the member is declared on.
+
+
+
+ Gets the type of element for the property, which for non-collection properties
+ is the same as the MemberType and which for collection properties is the type
+ of element contained in the collection.
+
+ The type of the element.
+
+
+
+ Gets the type of the member, which for collection properties is the type
+ of the collection rather than the type in the collection.
+
+ The type of the member.
+
+
+
+ The types of member entries supported.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type that the property is declared on.
+ Type of the property.
+ The property name.
+ if set to true this is a collection nav prop.
+
+
+
+ Creates a new the runtime type of which will be
+ determined by the metadata.
+
+ The entity entry to which the member belongs.
+ The parent property entry which will always be null for navigation entries.
+ The new entry.
+
+
+
+ Gets the type of the member for which this is metadata.
+
+ The type of the member entry.
+
+
+
+ Gets the type of the member, which for collection properties is the type
+ of the collection rather than the type in the collection.
+
+ The type of the member.
+
+
+
+ The internal class used to implement and
+ .
+ This internal class contains all the common implementation between the generic and non-generic
+ entry classes and also allows for a clean internal factoring without compromising the public API.
+
+
+
+
+ Base class for and
+ containing common code for collection and reference navigation property entries.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entity entry.
+ The navigation metadata.
+
+
+
+ Calls Load on the underlying .
+
+
+
+
+ Uses CreateSourceQuery on the underlying to create a query for this
+ navigation property.
+
+
+
+
+ Gets the navigation property value from the object.
+
+ The entity.
+ The navigation property value.
+
+
+
+ Validates that the owning entity entry is associated with an underlying and
+ is not just wrapping a non-attached entity.
+ If the entity is not detached, then the RelatedEnd for this navigation property is obtained.
+
+
+
+
+ Calls IsLoaded on the underlying .
+
+
+
+
+ Gets the related end, which will be null if the entity is not being tracked.
+
+ The related end.
+
+
+
+ Gets or sets the current value of the navigation property. The current value is
+ the entity that the navigation property references or the collection of references
+ for a collection property.
+ This property is virtual so that it can be mocked.
+
+ The current value.
+
+
+
+ Gets a delegate that can be used to get the value of the property directly from the entity.
+ Returns null if the property does not have an accessible getter.
+
+ The getter delegate, or null.
+
+
+
+ Gets a delegate that can be used to set the value of the property directly on the entity.
+ Returns null if the property does not have an accessible setter.
+
+ The setter delegate, or null.
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entity entry.
+ The navigation metadata.
+
+
+
+ Gets the navigation property value from the object.
+ Since for a collection the related end is an , it means
+ that the internal representation of the navigation property is just the related end.
+
+ The entity.
+ The navigation property value.
+
+
+
+ Creates a new non-generic backed by this internal entry.
+ The runtime type of the DbMemberEntry created will be or a subtype of it.
+
+ The new entry.
+
+
+
+ Creates a new generic backed by this internal entry.
+ The runtime type of the DbMemberEntry created will be or a subtype of it.
+
+ The type of the entity.
+ The type of the property.
+ The new entry.
+
+
+
+ Creates a new generic backed by this internal entry.
+ The actual subtype of the DbCollectionEntry created depends on the metadata of this internal entry.
+
+ The type of the entity.
+ The type of the element.
+ The new entry.
+
+
+
+ Creates a object for the given entity type
+ and collection element type.
+
+ The type of the entity.
+ The type of the property.
+ Type of the element.
+ The set.
+
+
+
+ Gets or sets the current value of the navigation property. The current value is
+ the entity that the navigation property references or the collection of references
+ for a collection property.
+
+ The current value.
+
+
+
+ A concrete implementation of used for properties of entities.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entry.
+ The property info.
+
+
+
+ Creates a delegate that will get the value of this property.
+
+ The delegate.
+
+
+
+ Creates a delegate that will set the value of this property.
+
+ The delegate.
+
+
+
+ Returns true if the property of the entity that this property is ultimately part
+ of is set as modified. Since this is a property of an entity this method returns
+ true if the property is modified.
+
+ True if the entity property is modified.
+
+
+
+ Sets the property of the entity that this property is ultimately part of to modified.
+ Since this is a property of an entity this method marks it as modified.
+
+
+
+
+ Returns parent property, or null if this is a property on the top-level entity.
+
+
+
+
+ Gets the current values of the parent entity.
+ That is, the current values that contains the value for this property.
+
+ The parent current values.
+
+
+
+ Gets the original values of the parent entity.
+ That is, the original values that contains the value for this property.
+
+ The parent original values.
+
+
+
+ The internal class used to implement ,
+ and .
+ This internal class contains all the common implementation between the generic and non-generic
+ entry classes and also allows for a clean internal factoring without compromising the public API.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The internal entity entry.
+ The navigation metadata.
+
+
+
+ Gets the navigation property value from the object.
+ For reference navigation properties, this means getting the value from the
+ object.
+
+ The entity.
+ The navigation property value.
+
+
+
+ Sets the navigation property value onto the object.
+ For reference navigation properties, this means setting the value onto the
+ object.
+
+ The entity.
+ The value.
+
+
+
+ Sets the given value on the given which must be an
+ .
+ This method is setup in such a way that it can easily be used by CreateDelegate without any
+ dynamic code generation needed.
+
+ The type of the related entity.
+ The entity reference.
+ The value.
+
+
+
+ Creates a new non-generic backed by this internal entry.
+ The runtime type of the DbMemberEntry created will be or a subtype of it.
+
+ The new entry.
+
+
+
+ Creates a new generic backed by this internal entry.
+ The runtime type of the DbMemberEntry created will be or a subtype of it.
+
+ The type of the entity.
+ The type of the property.
+ The new entry.
+
+
+
+ Gets or sets the current value of the navigation property. The current value is
+ the entity that the navigation property references or the collection of references
+ for a collection property.
+
+ The current value.
+
+
+
+ Contains metadata for a property of a complex object or entity.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type that the property is declared on.
+ Type of the property.
+ The property name.
+ if set to true the property is mapped in the EDM.
+ if set to true the property is a complex property.
+
+
+
+ Validates that the given name is a property of the declaring type (either on the CLR type or in the EDM)
+ and that it is a complex or scalar property rather than a nav property and then returns metadata about
+ the property.
+
+ The internal context.
+ The type that the property is declared on.
+ The type of property requested, which may be 'object' if any type can be accepted.
+ Name of the property.
+ Metadata about the property, or null if the property does not exist or is a navigation property.
+
+
+
+ Creates a new the runtime type of which will be
+ determined by the metadata.
+
+ The entity entry to which the member belongs.
+ The parent property entry if the new entry is nested, otherwise null.
+ The new entry.
+
+
+
+ Gets a value indicating whether this is a complex property.
+ That is, not whether or not this is a property on a complex object, but rather if the
+ property itself is a complex property.
+
+
+ true if this instance is complex; otherwise, false.
+
+
+
+
+ Gets the type of the member for which this is metadata.
+
+ The type of the member entry.
+
+
+
+ Gets a value indicating whether this instance is mapped in the EDM.
+
+ true if this instance is mapped; otherwise, false.
+
+
+
+ Gets the type of the member, which for collection properties is the type
+ of the collection rather than the type in the collection.
+
+ The type of the member.
+
+
+
+ An implementation of that represents a clone of another
+ dictionary. That is, all the property values have been been copied into this dictionary.
+
+
+
+
+ The internal class used to implement .
+ This internal class allows for a clean internal factoring without compromising the public API.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The internal context with which the entity of complex object is associated.
+ The type of the entity or complex object.
+ If set to true this is a dictionary for an entity, otherwise it is a dictionary for a complex object.
+
+
+
+ Implemented by subclasses to get the dictionary item for a given property name.
+ Checking that the name is valid should happen before this method is called such
+ that subclasses do not need to perform the check.
+
+ Name of the property.
+ An item for the given name.
+
+
+
+ Creates an object of the underlying type for this dictionary and hydrates it with property
+ values from this dictionary.
+
+ The properties of this dictionary copied into a new object.
+
+
+
+ Creates an instance of the underlying type for this dictionary, which may either be an entity type (in which
+ case CreateObject on the context is used) or a non-entity type (in which case the empty constructor is used.)
+ In either case, app domain cached compiled delegates are used to do the creation.
+
+
+
+
+ Sets the values of this dictionary by reading values out of the given object.
+ The given object must be of the type that this dictionary is based on.
+
+ The object to read values from.
+
+
+
+ Creates a new dictionary containing copies of all the properties in this dictionary.
+ Changes made to the new dictionary will not be reflected in this dictionary and vice versa.
+
+ A clone of this dictionary.
+
+
+
+ Sets the values of this dictionary by reading values from another dictionary.
+ The other dictionary must be based on the same type as this dictionary, or a type derived
+ from the type for this dictionary.
+
+ The dictionary to read values from.
+
+
+
+ Gets the dictionary item for the property with the given name.
+ This method checks that the given name is valid.
+
+ The property name.
+ The item.
+
+
+
+ Sets the value of the property only if it is different from the current value and is not
+ an invalid attempt to set a complex property.
+
+
+
+
+ Gets the set of names of all properties in this dictionary as a read-only set.
+
+ The property names.
+
+
+
+ Gets or sets the value of the property with the specified property name.
+ The value may be a nested instance of this class.
+
+ The property name.
+ The value of the property.
+
+
+
+ Gets the entity type of complex type that this dictionary is based on.
+
+ The type of the object underlying this dictionary.
+
+
+
+ Gets the internal context with which the underlying entity or complex type is associated.
+
+ The internal context.
+
+
+
+ Gets a value indicating whether the object for this dictionary is an entity or a complex object.
+
+ true if this this is a dictionary for an entity; false if it is a dictionary for a complex object.
+
+
+
+ Initializes a new instance of the class by copying
+ values from the given dictionary.
+
+ The dictionary to clone.
+ If non-null, then the values for the new dictionary are taken from this record rather than from the original dictionary.
+
+
+
+ Gets the dictionary item for a given property name.
+
+ Name of the property.
+ An item for the given name.
+
+
+
+ Gets the set of names of all properties in this dictionary as a read-only set.
+
+ The property names.
+
+
+
+ An implementation of for an item in a .
+
+
+
+
+ Represents an item in an representing a property name/value.
+
+
+
+
+ Gets or sets the value of the property represented by this item.
+
+ The value.
+
+
+
+ Gets the name of the property.
+
+ The name.
+
+
+
+ Gets a value indicating whether this item represents a complex property.
+
+ true If this instance represents a complex property; otherwise, false.
+
+
+
+ Gets the type of the underlying property.
+
+ The property type.
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+ The value.
+ The type.
+ If set to true this item represents a complex property.
+
+
+
+ Gets or sets the value of the property represented by this item.
+
+ The value.
+
+
+
+ Gets the name of the property.
+
+ The name.
+
+
+
+ Gets a value indicating whether this item represents a complex property.
+
+
+ true If this instance represents a complex property; otherwise, false.
+
+
+
+
+ Gets the type of the underlying property.
+
+ The property type.
+
+
+
+ An implementation of that is based on an existing
+ instance.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The internal context.
+ The type.
+ The data record.
+ If set to true this is a dictionary for an entity, otherwise it is a dictionary for a complex object.
+
+
+
+ Gets the dictionary item for a given property name.
+
+ Name of the property.
+ An item for the given name.
+
+
+
+ Gets the set of names of all properties in this dictionary as a read-only set.
+
+ The property names.
+
+
+
+ An implementation of for an item in a .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The data record.
+ The ordinal.
+ The value.
+
+
+
+ Gets or sets the value of the property represented by this item.
+
+ The value.
+
+
+
+ Gets the name of the property.
+
+ The name.
+
+
+
+ Gets a value indicating whether this item represents a complex property.
+
+
+ true If this instance represents a complex property; otherwise, false.
+
+
+
+
+ Gets the type of the underlying property.
+
+ The property type.
+
+
+
+ This is version of an internal interface that already exists in System.Data.Entity that
+ is implemented by . Using this interface allows state
+ entries to be mocked for unit testing. The plan is to remove this version of the
+ interface and use the one in System.Data.Entity once we roll into the framework.
+ Note that some members may need to be added to the interface in the framework when
+ we combine the two.
+
+
+
+
+ The internal class used to implement
+ and .
+ This internal class contains all the common implementation between the generic and non-generic
+ entry classes and also allows for a clean internal factoring without compromising the public API.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The internal context.
+ The state entry.
+
+
+
+ Initializes a new instance of the class for an
+ entity which may or may not be attached to the context.
+
+ The internal context.
+ The entity.
+
+
+
+ Queries the database for copies of the values of the tracked entity as they currently exist in the database.
+
+ The store values.
+
+
+
+ Appends a query for the properties in the entity to the given string builder that is being used to
+ build the eSQL query. This method may be called recursively to query for all the sub-properties of
+ a complex property.
+
+ The query builder.
+ The qualifier with which to prefix each property name.
+ The dictionary that acts as a template for the properties to query.
+
+
+
+ Validates that a dictionary can be obtained for the state of the entity represented by this entry.
+
+ The method name being used to request a dictionary.
+ The state that is invalid for the request being processed.
+
+
+
+ Calls Refresh with StoreWins on the underlying state entry.
+
+
+
+
+ Gets an internal object representing a reference navigation property.
+ This method is virtual to allow mocking.
+
+ The navigation property.
+ The type of entity requested, which may be 'object' or null if any type can be accepted.
+ The entry.
+
+
+
+ Gets an internal object representing a collection navigation property.
+ This method is virtual to allow mocking.
+
+ The navigation property.
+ The type of entity requested, which may be 'object' or null f any type can be accepted.
+ The entry.
+
+
+
+ Gets an internal object representing a navigation, scalar, or complex property.
+ This method is virtual to allow mocking.
+
+ Name of the property.
+ The type of entity requested, which may be 'object' if any type can be accepted.
+ The entry.
+
+
+
+ Gets an internal object representing a scalar or complex property.
+ This method is virtual to allow mocking.
+
+ The property.
+ The type of object requested, which may be null or 'object' if any type can be accepted.
+ if set to true then the found property must be a complex property.
+ The entry.
+
+
+
+ Gets an internal object representing a scalar or complex property.
+ The property may be a nested property on the given .
+
+ The parent property entry, or null if this is a property directly on the entity.
+ Name of the property.
+ The type of object requested, which may be null or 'object' if any type can be accepted.
+ if set to true then the found property must be a complex property.
+ The entry.
+
+
+
+ Gets an internal object representing a scalar or complex property.
+ The property may be a nested property on the given .
+
+ The parent property entry, or null if this is a property directly on the entity.
+ Name of the property.
+ The property split out into its parts.
+ The type of object requested, which may be null or 'object' if any type can be accepted.
+ if set to true then the found property must be a complex property.
+ The entry.
+
+
+
+ Checks that the given property name is a navigation property and is either a reference property or
+ collection property according to the value of requireCollection.
+
+
+
+
+ Gets metadata for the given property if that property is a navigation property or returns null
+ if it is not a navigation property.
+
+ Name of the property.
+ Navigation property metadata or null.
+
+
+
+ Gets the type of entity or entities at the target end of the given navigation property.
+
+ The navigation property.
+ The CLR type of the entity or entities at the other end.
+
+
+
+ Gets the related end for the navigation property with the given name.
+
+ The navigation property.
+
+
+
+
+ Uses EDM metadata to validate that the property name exists in the model and represents a scalar or
+ complex property or exists in the CLR type.
+ This method is public and virtual so that it can be mocked.
+
+ The property name.
+ The type on which the property is declared.
+ The type of object requested, which may be 'object' if any type can be accepted.
+ Metadata for the property.
+
+
+
+ Splits the given property name into parts delimited by dots.
+
+ Name of the property.
+ The parts of the name.
+
+
+
+ Validates that this entry is associated with an underlying and
+ is not just wrapping a non-attached entity.
+
+
+
+
+ Validates entity represented by this entity entry.
+ This method is virtual to allow mocking.
+
+ User defined dictionary containing additional info for custom validation. This parameter is optional and can be null.
+ containing validation result. Never null.
+
+
+
+ Determines whether the specified is equal to this instance.
+ Two instances are considered equal if they are both entries for
+ the same entity on the same .
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+ Two instances are considered equal if they are both entries for
+ the same entity on the same .
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Gets the tracked entity.
+ This property is virtual to allow mocking.
+
+ The entity.
+
+
+
+ Gets or sets the state of the entity.
+
+ The state.
+
+
+
+ Gets the current property values for the tracked entity represented by this object.
+ This property is virtual to allow mocking.
+
+ The current values.
+
+
+
+ Gets the original property values for the tracked entity represented by this object.
+ The original values are usually the entity's property values as they were when last queried from
+ the database.
+ This property is virtual to allow mocking.
+
+ The original values.
+
+
+
+ Checks whether or not this entry is associated with an underlying or
+ is just wrapping a non-attached entity.
+
+
+
+
+ Gets the type of the entity being tracked.
+
+ The type of the entity.
+
+
+
+ Gets the c-space entity type for this entity from the EDM.
+
+
+
+
+ Gets the underlying object state entry.
+
+
+
+
+ Gets the internal context.
+
+ The internal context.
+
+
+
+ An implementation of that wraps an existing set but makes
+ it read-only.
+
+
+
+
+
+ Initializes a new instance of the class wrapped around
+ another existing set.
+
+ The existing set.
+
+
+
+ This is a temporary adapter class that wraps an and
+ presents it as an . This class will be removed once
+ we roll into the System.Data.Entity assembly. See
+ for more details.
+
+
+
+
+ An instance of this internal class is created whenever an instance of the public
+ class is needed. This allows the public surface to be non-generic, while the runtime type created
+ still implements .
+
+ The type of the element.
+
+
+
+ Creates a new query that will be backed by the given internal query object.
+
+ The backing query.
+
+
+
+ See comments in .
+
+
+
+
+ See comments in .
+
+
+
+
+ Gets the enumeration of this query causing it to be executed against the store.
+
+ An enumerator for the query
+
+
+
+ Gets the underlying internal query object.
+
+ The internal query.
+
+
+
+ An instance of this internal class is created whenever an instance of the public
+ class is needed. This allows the public surface to be non-generic, while the runtime type created
+ still implements .
+
+ The type of the entity.
+
+
+
+ Creates a new set that will be backed by the given internal set.
+
+ The internal set.
+
+
+
+ Creates an instance of this class. This method is used with CreateDelegate to cache a delegate
+ that can create a generic instance without calling MakeGenericType every time.
+
+
+ The internal set to wrap, or null if a new internal set should be created.
+ The set.
+
+
+
+ See comments in .
+
+
+
+
+ See comments in .
+
+
+
+
+ See comments in .
+
+
+
+
+ See comments in .
+
+
+
+
+ See comments in .
+
+
+
+
+ Gets the enumeration of this query causing it to be executed against the store.
+
+ An enumerator for the query
+
+
+
+ Gets the underlying internal query object.
+
+ The internal query.
+
+
+
+ Gets the underlying internal set.
+
+ The internal set.
+
+
+
+ See comments in .
+
+
+
+
+ A LINQ expression visitor that finds uses with equivalent
+ instances.
+
+
+
+
+ Replaces calls to DbContext.Set() with an expression for the equivalent .
+
+ The node to replace.
+ A new node, which may have had the replacement made.
+
+
+
+ Replaces a or property with a constant expression
+ for the underlying .
+
+ The node to replace.
+ A new node, which may have had the replacement made.
+
+
+
+ Processes the fields in each constant expression and replaces instances with
+ the underlying ObjectQuery instance. This handles cases where the query has a closure
+ containing values.
+
+
+
+
+ Gets a value from the given member, or returns null
+ if the member doesn't contain a DbContext instance.
+
+ The expression for the object for the member, which may be null for a static member.
+ The member.
+ The context or null.
+
+
+
+ Gets the instance from the given instance or static member, returning null
+ if the member does not contain a DbContext instance.
+
+ The member.
+ The value of the object to get the instance from, or null if the member is static.
+ The context instance or null.
+
+
+
+ Takes a or and creates an expression
+ for the underlying .
+
+
+
+
+ Takes a or and extracts the underlying .
+
+
+
+
+ A non-generic interface implemented by that allows operations on
+ any query object without knowing the type to which it applies.
+
+
+
+
+ An interface implemented by .
+
+ The type of the element.
+
+
+
+ A non-generic interface implemented by that allows operations on
+ any set object without knowing the type to which it applies.
+
+
+
+
+ An interface implemented by .
+
+
+
+
+ An InternalQuery underlies every instance of DbSet and DbQuery. It acts to lazily initialize a InternalContext as well
+ as an ObjectQuery and EntitySet the first time that it is used. The InternalQuery also acts to expose necessary
+ information to other parts of the design in a controlled manner without adding a lot of internal methods and
+ properties to the DbSet and DbQuery classes themselves.
+
+ The type of entity to query for.
+
+
+
+ Creates a new query that will be backed by the given InternalContext.
+
+ The backing context.
+
+
+
+ Creates a new internal query based on the information in an existing query together with
+ a new underlying ObjectQuery.
+
+
+
+
+ Resets the query to its uninitialized state so that it will be re-lazy initialized the next
+ time it is used. This allows the ObjectContext backing a DbContext to be switched out.
+
+
+
+
+ Updates the underlying ObjectQuery with the given include path.
+
+ The include path.
+ A new query containing the defined include path.
+
+
+
+ Returns a new query where the entities returned will not be cached in the .
+
+ A new query with NoTracking applied.
+
+
+
+ Performs lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects
+ so that the query can be used.
+
+
+
+
+ Returns a representation of the underlying query, equivalent
+ to ToTraceString on ObjectQuery.
+
+
+ The query string.
+
+
+
+
+ Gets the enumeration of this query causing it to be executed against the store.
+
+ An enumerator for the query
+
+
+
+ Gets the enumeration of this query causing it to be executed against the store.
+
+ An enumerator for the query
+
+
+
+ The underlying InternalContext.
+
+
+
+
+ The underlying ObjectQuery.
+
+
+
+
+ The underlying ObjectQuery.
+
+
+
+
+ The LINQ query expression.
+
+
+
+
+ The LINQ query provider for the underlying .
+
+
+
+
+ The IQueryable element type.
+
+
+
+
+ Creates a new query that will be backed by the given InternalContext.
+
+ The backing context.
+
+
+
+ Resets the set to its uninitialized state so that it will be re-lazy initialized the next
+ time it is used. This allows the ObjectContext backing a DbContext to be switched out.
+
+
+
+
+ Finds an entity with the given primary key values.
+ If an entity with the given primary key values exists in the context, then it is
+ returned immediately without making a request to the store. Otherwise, a request
+ is made to the store for an entity with the given primary key values and this entity,
+ if found, is attached to the context and returned. If no entity is found in the
+ context or the store, then null is returned.
+
+
+ The ordering of composite key values is as defined in the EDM, which is in turn as defined in
+ the designer, by the Code First fluent API, or by the DataMember attribute.
+
+ The values of the primary key for the entity to be found.
+ The entity found, or null.
+ Thrown if multiple entities exist in the context with the primary key values given.
+ Thrown if the type of entity is not part of the data model for this context.
+ Thrown if the types of the key values do not match the types of the key values for the entity type to be found.
+ Thrown if the context has been disposed.
+
+
+
+ Finds an entity in the state manager with the given primary key values, or returns null
+ if no such entity can be found. This includes looking for Added entities with the given
+ key values.
+
+
+
+
+ Finds an entity in the store with the given primary key values, or returns null
+ if no such entity can be found. This code is adapted from TryGetObjectByKey to
+ include type checking in the query.
+
+
+
+
+ Attaches the given entity to the context underlying the set. That is, the entity is placed
+ into the context in the Unchanged state, just as if it had been read from the database.
+
+
+ Attach is used to repopulate a context with an entity that is known to already exist in the database.
+ SaveChanges will therefore not attempt to insert an attached entity into the database because
+ it is assumed to already be there.
+ Note that entities that are already in the context in some other state will have their state set
+ to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state.
+ This method is virtual so that it can be mocked.
+
+ The entity to attach.
+
+
+
+ Adds the given entity to the context underlying the set in the Added state such that it will
+ be inserted into the database when SaveChanges is called.
+
+
+ Note that entities that are already in the context in some other state will have their state set
+ to Added. Add is a no-op if the entity is already in the context in the Added state.
+ This method is virtual so that it can be mocked.
+
+ The entity to add.
+
+
+
+ Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges
+ is called. Note that the entity must exist in the context in some other state before this method
+ is called.
+
+
+ Note that if the entity exists in the context in the Added state, then this method
+ will cause it to be detached from the context. This is because an Added entity is assumed not to
+ exist in the database such that trying to delete it does not make sense.
+ This method is virtual so that it can be mocked.
+
+ The entity to remove.
+
+
+
+ This method checks whether an entity is already in the context. If it is, then the state
+ is changed to the new state given. If it isn't, then the action delegate is executed to
+ either Add or Attach the entity.
+
+ A delegate to Add or Attach the entity.
+ The new state to give the entity if it is already in the context.
+ The entity.
+ Name of the method.
+
+
+
+ Creates a new instance of an entity for the type of this set.
+ Note that this instance is NOT added or attached to the set.
+ The instance returned will be a proxy if the underlying context is configured to create
+ proxies and the entity type meets the requirements for creating a proxy.
+
+ The entity instance, which may be a proxy.
+
+
+
+ Creates a new instance of an entity for the type of this set or for a type derived
+ from the type of this set.
+ Note that this instance is NOT added or attached to the set.
+ The instance returned will be a proxy if the underlying context is configured to create
+ proxies and the entity type meets the requirements for creating a proxy.
+
+ The type of entity to create.
+ The entity instance, which may be a proxy.
+
+
+
+ Performs lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects
+ so that the query can be used.
+ This method is virtual so that it can be mocked.
+
+
+
+
+ Creates an underlying for this set.
+
+ if set to true then the query is set to be no-tracking.
+ The query.
+
+
+
+ Returns a representation of the underlying query, equivalent
+ to ToTraceString on ObjectQuery.
+
+
+ The query string.
+
+
+
+
+ Updates the underlying ObjectQuery with the given include path.
+
+ The include path.
+ A new query containing the defined include path.
+
+
+
+ Returns a new query where the entities returned will not be cached in the .
+
+ A new query with NoTracking applied.
+
+
+
+ Executes the given SQL query against the database materializing entities into the entity set that
+ backs this set.
+
+ The SQL quey.
+ if true then the entities are not tracked, otherwise they are.
+ The parameters.
+ The query results.
+
+
+
+ Gets the enumeration of this query causing it to be executed against the store.
+
+ An enumerator for the query
+
+
+
+ Gets the ObservableCollection representing the local view for the set based on this query.
+
+
+
+
+ The underlying ObjectQuery. Accessing this property will trigger lazy initialization of the query.
+
+
+
+
+ The underlying EntitySet name. Accessing this property will trigger lazy initialization of the query.
+
+
+
+
+ The underlying EntitySet name, quoted for ESQL. Accessing this property will trigger lazy initialization of the query.
+
+
+
+
+ The underlying EntitySet. Accessing this property will trigger lazy initialization of the query.
+
+
+
+
+ The base type for the underlying entity set. Accessing this property will trigger lazy initialization of the query.
+
+
+
+
+ The underlying InternalContext. Accessing this property will trigger lazy initialization of the query.
+
+
+
+
+ The LINQ query expression.
+
+
+
+
+ The LINQ query provider for the underlying .
+
+
+
+
+ A wrapping query provider that performs expression transformation and then delegates
+ to the provider. The objects returned
+ are always instances of when the generic CreateQuery method is
+ used and are instances of when the non-generic CreateQuery method
+ is used. This provider is associated with non-generic objects.
+
+
+
+
+ A wrapping query provider that performs expression transformation and then delegates
+ to the provider. The objects returned are always instances
+ of . This provider is associated with generic objects.
+
+
+
+
+ Creates a provider that wraps the given provider.
+
+ The provider to wrap.
+
+
+
+ Performs expression replacement and then delegates to the wrapped provider before wrapping
+ the returned as a .
+
+
+
+
+ Performs expression replacement and then delegates to the wrapped provider before wrapping
+ the returned as a where T is determined
+ from the element type of the ObjectQuery.
+
+
+
+
+ By default, calls the same method on the wrapped provider.
+
+
+
+
+ By default, calls the same method on the wrapped provider.
+
+
+
+
+ Performs expression replacement and then delegates to the wrapped provider to create an
+ .
+
+
+
+
+ Wraps the given as a where T is determined
+ from the element type of the ObjectQuery.
+
+
+
+
+ Gets the internal context.
+
+ The internal context.
+
+
+
+ Creates a provider that wraps the given provider.
+
+ The provider to wrap.
+
+
+
+ Performs expression replacement and then delegates to the wrapped provider before wrapping
+ the returned as a .
+
+
+
+
+ Delegates to the wrapped provider except returns instances of .
+
+
+
+
+ Instances of this class are used internally to create constant expressions for
+ that are inserted into the expression tree to replace references to
+ and .
+
+ The type of the element.
+
+
+
+ Private constructor called by the Create factory method.
+
+ The query.
+
+
+
+ Factory method called by CreateDelegate to create an instance of this class.
+
+ The query, which must be a generic object of the expected type.
+ A new instance.
+
+
+
+ The public property expected in the LINQ expression tree.
+
+ The query.
+
+
+
+ Validates a property of a given EDM complex type.
+
+
+ This is a composite validator for a complex property of an entity.
+
+
+
+
+ Validates a property of a given EDM property type.
+
+
+ This is a composite validator for a property of an entity or a complex type.
+
+
+
+
+ Simple validators for the corresponding property.
+
+
+
+
+ Name of the property the validator was created for.
+
+
+
+
+ Creates an instance of for a given EDM property.
+
+ The EDM property name.
+ Validators used to validate the given property.
+
+
+
+ Validates a property.
+
+ Validation context. Never null.
+ Property to validate. Never null.
+ Validation errors as . Empty if no errors. Never null.
+
+
+
+
+ Simple validators for the corresponding property.
+
+
+
+
+ Gets the name of the property the validator was created for.
+
+
+
+
+ The complex type validator.
+
+
+
+
+ Creates an instance of for a given complex property.
+
+ The complex property name.
+ Validators used to validate the given property.
+ Complex type validator.
+
+
+
+ Validates a complex property.
+
+ Validation context. Never null.
+ Property to validate. Never null.
+ Validation errors as . Empty if no errors. Never null.
+
+
+
+
+ Validator used to validate a property of a given EDM ComplexType.
+
+
+ This is a composite validator.
+
+
+
+
+ Validator used to validate an entity of a given EDM Type.
+
+
+ This is a composite validator for an EDM Type.
+
+
+
+
+ Creates an instance for a given EDM type.
+
+ Property validators.
+ Type level validators.
+
+
+
+ Validates an instance.
+
+ Entity validation context. Must not be null.
+ The entry for the complex property. Null if validating an entity.
+ instance. Never null.
+ Protected so it doesn't appear on EntityValidator.
+
+
+
+ Validates type properties. Any validation errors will be added to
+ collection.
+
+
+ Validation context. Must not be null.
+
+
+ Collection of validation errors. Any validation errors will be added to it.
+
+ The entry for the complex property. Null if validating an entity.
+
+ Note that will be modified by this method. Errors should be only added,
+ never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations
+ and a merge of validation error lists per entity.
+
+
+
+
+ Returns a validator for a child property.
+
+ Name of the child property for which to return a validator.
+
+ Validator for a child property. Possibly null if there are no validators for requested property.
+
+
+
+
+ Creates an instance for a given EDM complex type.
+
+ Property validators.
+ Type level validators.
+
+
+
+ Validates an instance.
+
+ Entity validation context. Must not be null.
+ The entry for the complex property. Null if validating an entity.
+ instance. Never null.
+
+
+
+ Validates type properties. Any validation errors will be added to
+ collection.
+
+
+ Validation context. Must not be null.
+
+
+ Collection of validation errors. Any validation errors will be added to it.
+
+ The entry for the complex property. Null if validating an entity.
+
+ Note that will be modified by this method. Errors should be only added,
+ never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations
+ and a merge of validation error lists per entity.
+
+
+
+
+ Contains information needed to validate an entity or its properties.
+
+
+
+
+ The entity being validated or the entity that owns the property being validated.
+
+
+
+
+ Initializes a new instance of EntityValidationContext class.
+
+
+ The entity being validated or the entity that owns the property being validated.
+
+
+ External contexts needed for validation.
+
+
+
+
+ External context needed for validation.
+
+
+
+
+ Gets the entity being validated or the entity that owns the property being validated.
+
+
+
+
+ Validator used to validate an entity of a given EDM EntityType.
+
+
+ This is a top level, composite validator. This is also an entry point to getting an entity
+ validated as validation of an entity is always started by calling Validate method on this type.
+
+
+
+
+ Creates an instance for a given EDM entity type.
+
+ Property validators.
+ Entity type level validators.
+
+
+
+ Validates an entity.
+
+ Entity validation context. Must not be null.
+ instance. Never null.
+
+
+
+ Validates type properties. Any validation errors will be added to
+ collection.
+
+
+ Validation context. Must not be null.
+
+
+ Collection of validation errors. Any validation errors will be added to it.
+
+ The entry for the complex property. Null if validating an entity.
+
+ Note that will be modified by this method. Errors should be only added,
+ never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations
+ and a merge of validation error lists per entity.
+
+
+
+
+ Builds validators based on s specified on entity CLR types and properties
+ as well as based on presence of implementation on entity and complex
+ type CLR types. It's not sealed and not static for mocking purposes.
+
+
+
+
+ Builds an for the given .
+
+ The entity entry to build the validator for.
+ Whether the currently processed type is the target type or one of the ancestor types.
+
+
+ for the given . Possibly null
+ if no validation has been specified for this entity type.
+
+
+
+
+ Builds the validator for a given and the corresponding
+ .
+
+ The CLR type that corresponds to the EDM complex type.
+ The EDM complex type that type level validation is built for.
+ A for the given complex type. May be null if no validation specified.
+
+
+
+ Extracted method from BuildEntityValidator and BuildComplexTypeValidator
+
+
+
+
+ Build validators for the and the corresponding
+ or .
+
+ Properties to build validators for.
+ Non-navigation EDM properties.
+ Navigation EDM properties.
+ A list of validators. Possibly empty, never null.
+
+
+
+ Builds a for the given and the corresponding
+ . If the property is a complex type, type level validators will be built here as
+ well.
+ The CLR property to build the validator for.
+ The EDM property to build the validator for.
+
+ for the given . Possibly null
+ if no validation has been specified for this property.
+
+
+
+
+ Builds a for the given transient .
+
+ The CLR property to build the validator for.
+
+ for the given . Possibly null
+ if no validation has been specified for this property.
+
+
+
+
+ Builds s for given that derive from
+ .
+
+ Attributes used to build validators.
+
+ A list of s built from .
+ Possibly empty, never null.
+
+
+
+
+ Returns all non-static non-indexed CLR properties from the .
+
+ The CLR to get the properties from.
+
+ A collection of CLR properties. Possibly empty, never null.
+
+
+
+
+ Builds validators based on the facets of :
+ * If .Nullable facet set to false adds a validator equivalent to the RequiredAttribute
+ * If the .MaxLength facet is specified adds a validator equivalent to the MaxLengthAttribute.
+ However the validator isn't added if .IsMaxLength has been set to true.
+
+ The CLR property to build the facet validators for.
+ The property for which facet validators will be created
+ A collection of validators.
+
+
+
+ Contracts for abstract class.
+
+
+
+
+ Validates entities or complex types implementing IValidatableObject interface.
+
+
+
+
+ Display attribute used to specify the display name for an entity or complex property.
+
+
+
+
+ Validates an entity or a complex type implementing IValidatableObject interface.
+ This method is virtual to allow mocking.
+
+ Validation context. Never null.
+
+ Property to validate. Null if this is the entity that will be validated. Never null if this
+ is the complex type that will be validated.
+
+ Validation error as . Empty if no errors. Never null.
+
+
+ Note that is used to figure out what needs to be validated. If it not null the complex
+ type will be validated otherwise the entity will be validated.
+ Also if this is an IValidatableObject complex type but the instance (.CurrentValue) is null we won't validate
+ anything and will not return any errors. The reason for this is that Validation is supposed to validate using
+ information the user provided and not some additional implicit rules. (ObjectContext will throw for operations
+ that involve null complex properties).
+
+
+
+
+ Validates a property, complex property or an entity using validation attributes the property
+ or the complex/entity type is decorated with.
+
+
+ Note that this class is used for validating primitive properties using attributes declared on the property
+ (property level validation) and complex properties and entities using attributes declared on the type
+ (type level validation).
+
+
+
+
+ Display attribute used to specify the display name for a property or entity.
+
+
+
+
+ Validation attribute used to validate a property or an entity.
+
+
+
+
+ Creates an instance of class.
+
+
+ Validation attribute used to validate a property or an entity.
+
+
+
+
+ Validates a property or an entity.
+
+ Validation context. Never null.
+ Property to validate. Null for entity validation. Not null for property validation.
+
+
+ Validation errors as . Empty if no errors, never null.
+
+
+
+
+ Used to cache and retrieve generated validators and to create context for validating entities or properties.
+
+
+
+
+ Collection of validators keyed by the entity CLR type. Note that if there's no validation for a given type
+ it will be associated with a null validator.
+
+
+
+
+ Initializes a new instance of class.
+
+
+
+
+ Returns a validator to validate .
+
+ Entity the validator is requested for.
+
+ to validate . Possibly null if no validation
+ has been specified for the entity.
+
+
+
+
+ Returns a validator to validate .
+
+ Navigation property the validator is requested for.
+
+ Validator to validate . Possibly null if no validation
+ has been specified for the requested property.
+
+
+
+
+ Gets a validator for the .
+
+ Entity validator.
+ Property to get a validator for.
+
+ Validator to validate . Possibly null if there is no validation for the
+ .
+
+
+ For complex properties this method walks up the type hierarchy to get to the entity level and then goes down
+ and gets a validator for the child property that is an ancestor of the property to validate. If a validator
+ returned for an ancestor is null it means that there is no validation defined beneath and the method just
+ propagates (and eventually returns) null.
+
+
+
+
+ Creates for .
+
+ Entity entry for which a validation context needs to be created.
+ User defined dictionary containing additional info for custom validation. This parameter is optional and can be null.
+ An instance of class.
+
+
+
+
+ Allows configuration to be performed for an complex type in a model.
+
+ A ComplexTypeConfiguration can be obtained via the ComplexType method on
+ or a custom type derived from ComplexTypeConfiguration
+ can be registered via the Configurations property on .
+
+ The complex type to be configured.
+
+
+
+ Allows configuration to be performed for a type in a model.
+
+ The type to be configured.
+
+
+
+ Configures a property that is defined on this type.
+
+ The type of the property being configured.
+
+ A lambda expression representing the property to be configured.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ The type of the property being configured.
+
+ A lambda expression representing the property to be configured.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+
+ A lambda expression representing the property to be configured.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+
+ A lambda expression representing the property to be configured.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+
+ A lambda expression representing the property to be configured.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+
+ A lambda expression representing the property to be configured.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+
+ A lambda expression representing the property to be configured.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+
+ A lambda expression representing the property to be configured.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+
+ A lambda expression representing the property to be configured.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+
+ A lambda expression representing the property to be configured.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+
+ A lambda expression representing the property to be configured.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+
+ A lambda expression representing the property to be configured.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to configure the property.
+
+
+
+ Excludes a property from the model so that it will not be mapped to the database.
+
+ The type of the property to be ignored.
+
+ A lambda expression representing the property to be configured.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+
+
+
+ Initializes a new instance of ComplexTypeConfiguration
+
+
+
+
+ Allows the conventions used by a instance to be customized.
+ Currently removal of one or more default conventions is the only supported operation.
+ The default conventions can be found in the System.Data.Entity.Conventions namespace.
+
+
+
+
+ Disables a convention for the .
+ The default conventions that are available for removal can be found in the System.Data.Entity.Conventions namespace.
+
+ The type of the convention to be disabled.
+
+
+
+ Moves a foreign key constraint from oldTable to newTable and updates column references
+
+
+
+
+ Move any FK constraints that are now completely in newTable and used to refer to oldColumn
+
+
+
+
+ Configures a database column used to store a string values.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the column to allow the maximum length supported by the database provider.
+
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+
+ Configures the column to be fixed length.
+ Use HasMaxLength to set the length that the property is fixed to.
+
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the column to be variable length.
+ Columns are variable length by default.
+
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the column to be optional.
+
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the column to be required.
+
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the data type of the database column.
+
+ Name of the database provider specific data type.
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the order of the database column.
+
+ The order that this column should appear in the database table.
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the column to support Unicode string content.
+
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the column supports Unicode string content.
+
+
+ Value indicating if the column supports Unicode string content or not.
+ Specifying 'null' will remove the Unicode facet from the column.
+ Specifying 'null' will cause the same runtime behavior as specifying 'false'.
+
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Base class for performing configuration of a relationship.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the table and column mapping of a relationship that does not expose foreign key properties in the object model.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the name of the column(s) for the foreign key.
+
+
+ The foreign key column names.
+ When using multiple foreign key properties, the properties must be specified in the same order that the
+ the primary key properties were configured for the target entity type.
+
+ The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the table name that the foreign key column(s) reside in.
+ The table that is specified must already be mapped for the entity type.
+
+ If you want the foreign key(s) to reside in their own table then use the Map method
+ on to perform
+ entity splitting to create the table with just the primary key property. Foreign keys can
+ then be added to the table via this method.
+
+ Name of the table.
+ The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the table name and schema that the foreign key column(s) reside in.
+ The table that is specified must already be mapped for the entity type.
+
+ If you want the foreign key(s) to reside in their own table then use the Map method
+ on to perform
+ entity splitting to create the table with just the primary key property. Foreign keys can
+ then be added to the table via this method.
+
+ Name of the table.
+ Schema of the table.
+ The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the table and column mapping of a many:many relationship.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the join table name for the relationship.
+
+ Name of the table.
+ The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the join table name and schema for the relationship.
+
+ Name of the table.
+ Schema of the table.
+ The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the column(s) for the left foreign key.
+ The left foreign key represents the navigation property specified in the HasMany call.
+
+
+ The foreign key column names.
+ When using multiple foreign key properties, the properties must be specified in the same order that the
+ the primary key properties were configured for the target entity type.
+
+ The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the column(s) for the right foreign key.
+ The right foreign key represents the navigation property specified in the WithMany call.
+
+
+ The foreign key column names.
+ When using multiple foreign key properties, the properties must be specified in the same order that the
+ the primary key properties were configured for the target entity type.
+
+ The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures a relationship that can only support foreign key properties that are not exposed in the object model.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures a relationship that can support cascade on delete functionality.
+
+
+
+
+ Configures cascade delete to be on for the relationship.
+
+
+
+
+ Configures whether or not cascade delete is on for the relationship.
+
+ Value indicating if cascade delete is on or not.
+
+
+
+ Configures the relationship to use foreign key property(s) that are not exposed in the object model.
+ The column(s) and table can be customized by specifying a configuration action.
+ If an empty configuration action is specified then column name(s) will be generated by convention.
+ If foreign key properties are exposed in the object model then use the HasForeignKey method.
+ Not all relationships support exposing foreign key properties in the object model.
+
+ Action that configures the foreign key column(s) and table.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+
+ Used to configure a property of an entity type or complex type.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Used to configure a property with length facets for an entity type or complex type.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Used to configure a primitive property of an entity type or complex type.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the property to be optional.
+ The database column used to store this property will be nullable.
+
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be required.
+ The database column used to store this property will be non-nullable.
+
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures how values for the property are generated by the database.
+
+
+ The pattern used to generate values for the property in the database.
+ Setting 'null' will remove the database generated pattern facet from the property.
+ Setting 'null' will cause the same runtime behavior as specifying 'None'.
+
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be used as an optimistic concurrency token.
+
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the property is to be used as an optimistic concurrency token.
+
+
+ Value indicating if the property is a concurrency token or not.
+ Specifying 'null' will remove the concurrency token facet from the property.
+ Specifying 'null' will cause the same runtime behavior as specifying 'false'.
+
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the data type of the database column used to store the property.
+
+ Name of the database provider specific data type.
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the database column used to store the property.
+
+ The name of the column.
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the order of the database column used to store the property.
+ This method is also used to specify key ordering when an entity type has a composite key.
+
+ The order that this column should appear in the database table.
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to allow the maximum length supported by the database provider.
+
+ The same LengthPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to have the specified maximum length.
+
+
+ The maximum length for the property.
+ Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column.
+
+ The same LengthPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be fixed length.
+ Use HasMaxLength to set the length that the property is fixed to.
+
+ The same LengthPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be variable length.
+ Properties are variable length by default.
+
+ The same LengthPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to allow the maximum length supported by the database provider.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to have the specified maximum length.
+
+
+ The maximum length for the property.
+ Setting 'null' will remove any maximum length restriction from the property.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be fixed length.
+ Use HasMaxLength to set the length that the property is fixed to.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be variable length.
+ properties are variable length by default.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be optional.
+ The database column used to store this property will be nullable.
+ properties are optional by default.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be required.
+ The database column used to store this property will be non-nullable.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures how values for the property are generated by the database.
+
+
+ The pattern used to generate values for the property in the database.
+ Setting 'null' will remove the database generated pattern facet from the property.
+ Setting 'null' will cause the same runtime behavior as specifying 'None'.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be used as an optimistic concurrency token.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the property is to be used as an optimistic concurrency token.
+
+
+ Value indicating if the property is a concurrency token or not.
+ Specifying 'null' will remove the concurrency token facet from the property.
+ Specifying 'null' will cause the same runtime behavior as specifying 'false'.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the database column used to store the property.
+
+ The name of the column.
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the data type of the database column used to store the property.
+
+ Name of the database provider specific data type.
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the order of the database column used to store the property.
+ This method is also used to specify key ordering when an entity type has a composite key.
+
+ The order that this column should appear in the database table.
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be a row version in the database.
+ The actual data type will vary depending on the database provider being used.
+ Setting the property to be a row version will automatically configure it to be an
+ optimistic concurrency token.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Used to configure a property of an entity type or complex type.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the property to be optional.
+ The database column used to store this property will be nullable.
+
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be required.
+ The database column used to store this property will be non-nullable.
+ properties are required by default.
+
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures how values for the property are generated by the database.
+
+
+ The pattern used to generate values for the property in the database.
+ Setting 'null' will remove the database generated pattern facet from the property.
+ Setting 'null' will cause the same runtime behavior as specifying 'None'.
+
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be used as an optimistic concurrency token.
+
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the property is to be used as an optimistic concurrency token.
+
+
+ Value indicating if the property is a concurrency token or not.
+ Specifying 'null' will remove the concurrency token facet from the property.
+ Specifying 'null' will cause the same runtime behavior as specifying 'false'.
+
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the database column used to store the property.
+
+ The name of the column.
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the data type of the database column used to store the property.
+
+ Name of the database provider specific data type.
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the order of the database column used to store the property.
+ This method is also used to specify key ordering when an entity type has a composite key.
+
+ The order that this column should appear in the database table.
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the precision of the property.
+ If the database provider does not support precision for the data type of the column then the value is ignored.
+
+ Precision of the property.
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Used to configure a property of an entity type or complex type.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the property to be optional.
+ The database column used to store this property will be nullable.
+
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be required.
+ The database column used to store this property will be non-nullable.
+ properties are required by default.
+
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures how values for the property are generated by the database.
+
+
+ The pattern used to generate values for the property in the database.
+ Setting 'null' will remove the database generated pattern facet from the property.
+ Setting 'null' will cause the same runtime behavior as specifying 'None'.
+
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be used as an optimistic concurrency token.
+
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the property is to be used as an optimistic concurrency token.
+
+
+ Value indicating if the property is a concurrency token or not.
+ Specifying 'null' will remove the concurrency token facet from the property.
+ Specifying 'null' will cause the same runtime behavior as specifying 'false'.
+
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the database column used to store the property.
+
+ The name of the column.
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the data type of the database column used to store the property.
+
+ Name of the database provider specific data type.
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the order of the database column used to store the property.
+ This method is also used to specify key ordering when an entity type has a composite key.
+
+ The order that this column should appear in the database table.
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the precision and scale of the property.
+
+ The precision of the property.
+ The scale of the property.
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Used to configure a property of an entity type or complex type.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the property to allow the maximum length supported by the database provider.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to have the specified maximum length.
+
+
+ The maximum length for the property.
+ Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column..
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be fixed length.
+ Use HasMaxLength to set the length that the property is fixed to.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be variable length.
+ properties are variable length by default.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be optional.
+ The database column used to store this property will be nullable.
+ properties are optional by default.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be required.
+ The database column used to store this property will be non-nullable.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures how values for the property are generated by the database.
+
+
+ The pattern used to generate values for the property in the database.
+ Setting 'null' will remove the database generated pattern facet from the property.
+ Setting 'null' will cause the same runtime behavior as specifying 'None'.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be used as an optimistic concurrency token.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the property is to be used as an optimistic concurrency token.
+
+
+ Value indicating if the property is a concurrency token or not.
+ Specifying 'null' will remove the concurrency token facet from the property.
+ Specifying 'null' will cause the same runtime behavior as specifying 'false'.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the database column used to store the property.
+
+ The name of the column.
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the data type of the database column used to store the property.
+
+ Name of the database provider specific data type.
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the order of the database column used to store the property.
+ This method is also used to specify key ordering when an entity type has a composite key.
+
+ The order that this column should appear in the database table.
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to support Unicode string content.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the property supports Unicode string content.
+
+
+ Value indicating if the property supports Unicode string content or not.
+ Specifying 'null' will remove the Unicode facet from the property.
+ Specifying 'null' will cause the same runtime behavior as specifying 'false'.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Convention to process instances of found on foreign key properties in the model.
+
+
+
+
+ Base class for conventions that process CLR attributes found in the model.
+
+ The type of member to look for.
+ The type of the configuration to look for.
+ The type of the attribute to look for.
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+ Convention to add a cascade delete to the join table from both tables involved in a many to many relationship.
+
+
+
+
+ Convention to ensure an invalid/unsupported mapping is not created when mapping inherited properties
+
+
+
+
+ Convention to set precision to 18 and scale to 2 for decimal properties.
+
+
+
+
+ Configures a relationship that can support foreign key properties that are exposed in the object model.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+ The dependent entity type.
+
+
+
+ Configures the relationship to use foreign key property(s) that are exposed in the object model.
+ If the foreign key property(s) are not exposed in the object model then use the Map method.
+
+ The type of the key.
+
+ A lambda expression representing the property to be used as the foreign key.
+ If the foreign key is made up of multiple properties then specify an anonymous type including the properties.
+ When using multiple foreign key properties, the properties must be specified in the same order that the
+ the primary key properties were configured for the principal entity type.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures a many:many relationship.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the foreign key column(s) and table used to store the relationship.
+
+ Action that configures the foreign key column(s) and table.
+
+
+
+ Configures the table and column mapping for an entity type or a sub-set of properties from an entity type.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+ The entity type to be mapped.
+
+
+
+ Configures the properties that will be included in this mapping fragment.
+ If this method is not called then all properties that have not yet been
+ included in a mapping fragment will be configured.
+
+ An anonymous type including the properties to be mapped.
+
+ A lambda expression to an anonymous type that contains the properties to be mapped.
+ C#: t => new { t.Id, t.Property1, t.Property2 }
+ VB.Net: Function(t) New From { p.Id, t.Property1, t.Property2 }
+
+
+
+
+ Re-maps all properties inherited from base types.
+
+ When configuring a derived type to be mapped to a separate table this will cause all properties to
+ be included in the table rather than just the non-inherited properties. This is known as
+ Table per Concrete Type (TPC) mapping.
+
+
+
+
+ Configures the table name to be mapped to.
+
+ Name of the table.
+
+
+
+ Configures the table name and schema to be mapped to.
+
+ Name of the table.
+ Schema of the table.
+
+
+
+ Configures the discriminator column used to differentiate between types in an inheritance hierarchy.
+
+ The name of the discriminator column.
+ A configuration object to further configure the discriminator column and values.
+
+
+
+ Configures the discriminator condition used to differentiate between types in an inheritance hierarchy.
+
+ The type of the property being used to discriminate between types.
+
+ A lambda expression representing the property being used to discriminate between types.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object to further configure the discriminator condition.
+
+
+
+ Configures a condition used to discriminate between types in an inheritance hierarchy based on the values assigned to a property.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the condition to require a value in the property.
+
+ Rows that do not have a value assigned to column that this property is stored in are
+ assumed to be of the base type of this entity type.
+
+
+
+
+ Configures a discriminator column used to differentiate between types in an inheritance hierarchy.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the discriminator value used to identify the entity type being
+ configured from other types in the inheritance hierarchy.
+
+ Type of the discriminator value.
+ The value to be used to identify the entity type.
+ A configuration object to configure the column used to store discriminator values.
+
+
+
+ Configures the discriminator value used to identify the entity type being
+ configured from other types in the inheritance hierarchy.
+
+ Type of the discriminator value.
+ The value to be used to identify the entity type.
+ A configuration object to configure the column used to store discriminator values.
+
+
+
+ Configures the discriminator value used to identify the entity type being
+ configured from other types in the inheritance hierarchy.
+
+ The value to be used to identify the entity type.
+ A configuration object to configure the column used to store discriminator values.
+
+
+
+ Allows derived configuration classes for entities and complex types to be registered with a .
+
+
+ Derived configuration classes are created by deriving from
+ or and using a type to be included in the model as the generic
+ parameter.
+
+ Configuration can be performed without creating derived configuration classes via the Entity and ComplexType
+ methods on .
+
+
+
+
+ Adds an to the .
+ Only one can be added for each type in a model.
+
+ The entity type being configured.
+ The entity type configuration to be added.
+ The same ConfigurationRegistrar instance so that multiple calls can be chained.
+
+
+
+ Adds an to the .
+ Only one can be added for each type in a model.
+
+ The complex type being configured.
+ The complex type configuration to be added
+ The same ConfigurationRegistrar instance so that multiple calls can be chained.
+
+
+
+ True if this configuration can be replaced in the model configuration, false otherwise
+ This is only set to true for configurations that are registered automatically via the DbContext
+
+
+
+
+ Configures a many relationship from an entity type.
+
+ The entity type that the relationship originates from.
+ The entity type that the relationship targets.
+
+
+
+ Configures the relationship to be many:many with a navigation property on the other side of the relationship.
+
+
+ An lambda expression representing the navigation property on the other end of the relationship.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be many:many without a navigation property on the other side of the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be many:required with a navigation property on the other side of the relationship.
+
+
+ An lambda expression representing the navigation property on the other end of the relationship.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be many:required without a navigation property on the other side of the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be many:optional with a navigation property on the other side of the relationship.
+
+
+ An lambda expression representing the navigation property on the other end of the relationship.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be many:optional without a navigation property on the other side of the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Initializes configurations in the ModelConfiguration so that configuration data
+ is in a single place
+
+
+
+
+ Configures an optional relationship from an entity type.
+
+ The entity type that the relationship originates from.
+ The entity type that the relationship targets.
+
+
+
+ Configures the relationship to be optional:many with a navigation property on the other side of the relationship.
+
+
+ An lambda expression representing the navigation property on the other end of the relationship.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be optional:many without a navigation property on the other side of the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be optional:required with a navigation property on the other side of the relationship.
+
+
+ An lambda expression representing the navigation property on the other end of the relationship.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be optional:required without a navigation property on the other side of the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be optional:optional with a navigation property on the other side of the relationship.
+ The entity type being configured will be the dependent and contain a foreign key to the principal.
+ The entity type that the relationship targets will be the principal in the relationship.
+
+
+ An lambda expression representing the navigation property on the other end of the relationship.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be optional:optional without a navigation property on the other side of the relationship.
+ The entity type being configured will be the dependent and contain a foreign key to the principal.
+ The entity type that the relationship targets will be the principal in the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be optional:optional with a navigation property on the other side of the relationship.
+ The entity type being configured will be the principal in the relationship.
+ The entity type that the relationship targets will be the dependent and contain a foreign key to the principal.
+
+
+ A lambda expression representing the navigation property on the other end of the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be optional:optional without a navigation property on the other side of the relationship.
+ The entity type being configured will be the principal in the relationship.
+ The entity type that the relationship targets will be the dependent and contain a foreign key to the principal.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Convention to process instances of found on properties in the model
+
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+ Convention to process instances of found on navigation properties in the model.
+
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+ Convention to process instances of found on primitive properties in the model.
+
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+ Convention to process instances of found on types in the model.
+
+
+
+
+ Convention to process instances of found on types in the model.
+
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+ Convention to process instances of found on types in the model.
+
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+ Convention to move primary key properties to appear first.
+
+
+
+
+ Convention to apply column ordering specified via or the API.
+
+
+
+
+ Convention to convert any data types that were explicitly specified, via data annotations or API,
+ to be lower case. The default SqlClient provider is case sensitive and requires data types to be lower case. This convention
+ allows the and API to be case insensitive.
+
+
+
+
+ Convention to set a default maximum length of 128 for properties whose type supports length facets.
+
+
+
+
+ Convention to set the entity set name to be a pluralized version of the entity type name.
+
+
+
+
+ This class provide service for both the singularization and pluralization, it takes the word pairs
+ in the ctor following the rules that the first one is singular and the second one is plural.
+
+
+
+
+ Factory method for PluralizationService. Only support english pluralization.
+ Please set the PluralizationService on the System.Data.Entity.Design.EntityModelSchemaGenerator
+ to extend the service to other locales.
+
+ CultureInfo
+ PluralizationService
+
+
+
+ captalize the return word if the parameter is capitalized
+ if word is "Table", then return "Tables"
+
+
+
+
+
+
+
+ separate one combine word in to two parts, prefix word and the last word(suffix word)
+
+
+
+
+
+
+
+ return true when the word is "[\s]*" or leading or tailing with spaces
+ or contains non alphabetical characters
+
+
+
+
+
+
+ This method allow you to add word to internal PluralizationService of English.
+ If the singluar or the plural value was already added by this method, then an ArgumentException will be thrown.
+
+
+
+
+
+
+ Convention to set the table name to be a pluralized version of the entity type name.
+
+
+
+
+ Convention to configure the primary key(s) of the dependent entity type as foreign key(s) in a one:one relationship.
+
+
+
+
+ Convention to distinguish between optional and required relationships based on CLR nullability of the foreign key property.
+
+
+
+
+ Convention to detect primary key properties.
+ Recognized naming patterns in order of precedence are:
+ 1. 'Id'
+ 2. [type name]Id
+ Primary key detection is case insensitive.
+
+
+
+
+ Handles mapping from a CLR property to an EDM assocation and nav. prop.
+
+
+
+
+ True if the NavigationProperty's declaring type is the principal end, false if it is not, null if it is not known
+
+
+
+
+ Exception thrown by during model creation when an invalid model is generated.
+
+
+
+
+ Initializes a new instance of ModelValidationException
+
+
+
+
+ Initializes a new instance of ModelValidationException
+
+ The exception message.
+
+
+
+ Initializes a new instance of ModelValidationException
+
+ The exception message.
+ The inner exception.
+
+
+
+ Convention to detect navigation properties to be inverses of each other when only one pair
+ of navigation properties exists between the related types.
+
+
+
+
+ Convention to configure a type as a complex type if it has no primary key, no mapped base type and no navigation properties.
+
+
+
+
+ Convention to discover foreign key properties whose names are a combination
+ of the dependent navigation property name and the principal type primary key property name(s).
+
+
+
+
+ Allows configuration to be performed for an entity type in a model.
+
+ An EntityTypeConfiguration can be obtained via the Entity method on
+ or a custom type derived from EntityTypeConfiguration
+ can be registered via the Configurations property on .
+
+
+
+
+ Initializes a new instance of EntityTypeConfiguration
+
+
+
+
+ Configures the primary key property(s) for this entity type.
+
+ The type of the key.
+
+ A lambda expression representing the property to be used as the primary key.
+ C#: t => t.Id
+ VB.Net: Function(t) t.Id
+
+ If the primary key is made up of multiple properties then specify an anonymous type including the properties.
+ C#: t => new { t.Id1, t.Id2 }
+ VB.Net: Function(t) New From { t.Id1, t.Id2 }
+
+ The same EntityTypeConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the entity set name to be used for this entity type.
+ The entity set name can only be configured for the base type in each set.
+
+ The name of the entity set.
+ The same EntityTypeConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the table name that this entity type is mapped to.
+
+ The name of the table.
+
+
+
+ Configures the table name that this entity type is mapped to.
+
+ The name of the table.
+ The database schema of the table.
+
+
+
+ Allows advanced configuration related to how this entity type is mapped to the database schema.
+ By default, any configuration will also apply to any type derived from this entity type.
+
+ Derived types can be configured via the overload of Map that configures a derived type or
+ by using an EntityTypeConfiguration for the derived type.
+
+ The properties of an entity can be split between multiple tables using multiple Map calls.
+
+ Calls to Map are additive, subsequent calls will not override configuration already preformed via Map.
+
+ An action that performs configuration against an .
+ The same EntityTypeConfiguration instance so that multiple calls can be chained.
+
+
+
+ Allows advanced configuration related to how a derived entity type is mapped to the database schema.
+ Calls to Map are additive, subsequent calls will not override configuration already preformed via Map.
+
+ The derived entity type to be configured.
+ An action that performs configuration against an .
+ The same EntityTypeConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures an optional relationship from this entity type.
+ Instances of the entity type will be able to be saved to the database without this relationship being specified.
+ The foreign key in the database will be nullable.
+
+ The type of the entity at the other end of the relationship.
+
+ A lambda expression representing the navigation property for the relationship.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures a required relationship from this entity type.
+ Instances of the entity type will not be able to be saved to the database unless this relationship is specified.
+ The foreign key in the database will be non-nullable.
+
+ The type of the entity at the other end of the relationship.
+
+ A lambda expression representing the navigation property for the relationship.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures a many relationship from this entity type.
+
+ The type of the entity at the other end of the relationship.
+
+ A lambda expression representing the navigation property for the relationship.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ DbModelBuilder is used to map CLR classes to a database schema.
+ This code centric approach to building an Entity Data Model (EDM) model is known as 'Code First'.
+
+
+ DbModelBuilder is typically used to configure a model by overriding .
+ You can also use DbModelBuilder independently of DbContext to build a model and then construct a
+ or .
+ The recommended approach, however, is to use OnModelCreating in as
+ the workflow is more intuitive and takes care of common tasks, such as caching the created model.
+
+ Types that form your model are registered with DbModelBuilder and optional configuration can be
+ performed by applying data annotations to your classes and/or using the fluent style DbModelBuilder
+ API.
+
+ When the Build method is called a set of conventions are run to discover the initial model.
+ These conventions will automatically discover aspects of the model, such as primary keys, and
+ will also process any data annotations that were specified on your classes. Finally
+ any configuration that was performed using the DbModelBuilder API is applied.
+
+ Configuration done via the DbModelBuilder API takes precedence over data annotations which
+ in turn take precedence over the default conventions.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The process of discovering the initial model will use the set of conventions included
+ in the most recent version of the Entity Framework installed on your machine.
+
+
+ Upgrading to newer versions of the Entity Framework may cause breaking changes
+ in your application because new conventions may cause the initial model to be
+ configured differently. There is an alternate constructor that allows a specific
+ version of conventions to be specified.
+
+
+
+
+ Initializes a new instance of the class that will use
+ a specific set of conventions to discover the initial model.
+
+ The version of conventions to be used.
+
+
+
+ Excludes a type from the model. This is used to remove types from the model that were added
+ by convention during initial model discovery.
+
+ The type to be excluded.
+ The same DbModelBuilder instance so that multiple calls can be chained.
+
+
+
+ Excludes a type(s) from the model. This is used to remove types from the model that were added
+ by convention during initial model discovery.
+
+ The types to be excluded from the model.
+ The same DbModelBuilder instance so that multiple calls can be chained.
+
+
+
+ Registers an entity type as part of the model and returns an object that can be used to
+ configure the entity. This method can be called multiple times for the same entity to
+ perform multiple lines of configuration.
+
+ The type to be registered or configured.
+ The configuration object for the specified entity type.
+
+
+
+ Registers a type as an entity in the model and returns an object that can be used to
+ configure the entity. This method can be called multiple times for the same type to
+ perform multiple lines of configuration.
+
+ The type to be registered or configured.
+ The configuration object for the specified entity type.
+
+
+
+ Registers a type as a complex type in the model and returns an object that can be used to
+ configure the complex type. This method can be called multiple times for the same type to
+ perform multiple lines of configuration.
+
+ The type to be registered or configured.
+ The configuration object for the specified complex type.
+
+
+
+ Creates a based on the configuration performed using this builder.
+ The connection is used to determine the database provider being used as this
+ affects the database layer of the generated model.
+
+ Connection to use to determine provider information.
+ The model that was built.
+
+
+
+ Creates a based on the configuration performed using this builder.
+ Provider information must be specified because this affects the database layer of the generated model.
+ For SqlClient the invariant name is 'System.Data.SqlClient' and the manifest token is the version year (i.e. '2005', '2008' etc.)
+
+ The database provider that the model will be used with.
+ The model that was built.
+
+
+
+ Provides access to the settings of this DbModelBuilder that deal with conventions.
+
+
+
+
+ Gets the for this DbModelBuilder.
+ The registrar allows derived entity and complex type configurations to be registered with this builder.
+
+
+
+
+ Convention to enable cascade delete for any required relationships.
+
+
+
+
+ Convention to discover foreign key properties whose names match the principal type primary key property name(s).
+
+
+
+
+ Convention to configure integer primary keys to be identity.
+
+
+
+
+ Convention to discover foreign key properties whose names are a combination
+ of the principal type name and the principal type primary key property name(s).
+
+
+
+
+ Attempt to determine the principal and dependent ends of this association.
+
+ The following table illustrates the solution space.
+
+ Source | Target || Prin | Dep |
+ -------|--------||-------|-------|
+ 1 | 1 || - | - |
+ 1 | 0..1 || Sr | Ta |
+ 1 | * || Sr | Ta |
+ 0..1 | 1 || Ta | Sr |
+ 0..1 | 0..1 || - | - |
+ 0..1 | * || Sr | Ta |
+ * | 1 || Ta | Sr |
+ * | 0..1 || Ta | Sr |
+ * | * || - | - |
+
+
+
+
+ Configures an required relationship from an entity type.
+
+ The entity type that the relationship originates from.
+ The entity type that the relationship targets.
+
+
+
+ Configures the relationship to be required:many with a navigation property on the other side of the relationship.
+
+
+ An lambda expression representing the navigation property on the other end of the relationship.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be required:many without a navigation property on the other side of the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be required:optional with a navigation property on the other side of the relationship.
+
+
+ An lambda expression representing the navigation property on the other end of the relationship.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be required:optional without a navigation property on the other side of the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be required:required with a navigation property on the other side of the relationship.
+ The entity type being configured will be the dependent and contain a foreign key to the principal.
+ The entity type that the relationship targets will be the principal in the relationship.
+
+
+ An lambda expression representing the navigation property on the other end of the relationship.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be required:required without a navigation property on the other side of the relationship.
+ The entity type being configured will be the dependent and contain a foreign key to the principal.
+ The entity type that the relationship targets will be the principal in the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be required:required with a navigation property on the other side of the relationship.
+ The entity type being configured will be the principal in the relationship.
+ The entity type that the relationship targets will be the dependent and contain a foreign key to the principal.
+
+
+ An lambda expression representing the navigation property on the other end of the relationship.
+ C#: t => t.MyProperty
+ VB.Net: Function(t) t.MyProperty
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be required:required without a navigation property on the other side of the relationship.
+ The entity type being configured will be the principal in the relationship.
+ The entity type that the relationship targets will be the dependent and contain a foreign key to the principal.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Code Contracts hook methods - Called when contracts fail. Here we detect the most common preconditions
+ so we can throw the correct exceptions. It also means that we can write preconditions using the
+ simplest Contract.Requires() form.
+
+
+
+
+ Returns true if a variable of this type can be assigned a null value
+
+
+
+ True if a reference type or a nullable value type,
+ false otherwise
+
+
+
+
+ Exception thrown from when validating entities fails.
+
+
+
+
+ Initializes a new instance of DbEntityValidationException
+
+
+
+
+ Initializes a new instance of DbEntityValidationException
+
+ The exception message.
+
+
+
+ Initializes a new instance of DbEntityValidationException
+
+ The exception message.
+ Validation results.
+
+
+
+ Initializes a new instance of DbEntityValidationException
+
+ The exception message.
+ The inner exception.
+
+
+
+ Initializes a new instance of DbEntityValidationException
+
+ The exception message.
+ Validation results.
+ The inner exception.
+
+
+
+ Subscribes the SerializeObjectState event.
+
+
+
+
+ Validation results.
+
+
+
+
+ Holds exception state that will be serialized when the exception is serialized.
+
+
+
+
+ Validation results.
+
+
+
+
+ Completes the deserialization.
+
+ The deserialized object.
+
+
+
+ Validation results.
+
+
+
+
+ Represents validation results for single entity.
+
+
+
+
+ Entity entry the results applies to. Never null.
+
+
+
+
+ List of instances. Never null. Can be empty meaning the entity is valid.
+
+
+
+
+ Creates an instance of class.
+
+
+ Entity entry the results applies to. Never null.
+
+
+ List of instances. Never null. Can be empty meaning the entity is valid.
+
+
+
+
+ Creates an instance of class.
+
+
+ Entity entry the results applies to. Never null.
+
+
+ List of instances. Never null. Can be empty meaning the entity is valid.
+
+
+
+
+ Gets an instance of the results applies to.
+
+
+
+
+ Gets validation errors. Never null.
+
+
+
+
+ Gets an indicator if the entity is valid.
+
+
+
+
+ Validation error. Can be either entity or property level validation error.
+
+
+
+
+ Name of the invalid property. Can be null (e.g. for entity level validations)
+
+
+
+
+ Validation error message.
+
+
+
+
+ Creates an instance of .
+
+ Name of the invalid property. Can be null.
+ Validation error message. Can be null.
+
+
+
+ Gets name of the invalid property.
+
+
+
+
+ Gets validation error message.
+
+
+
+
+ Denotes a property used as a foreign key in a relationship.
+ The annotation may be placed on the foreign key property and specify the associated navigation property name,
+ or placed on a navigation property and specify the associated foreign key name.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ If placed on a foreign key property, the name of the associated navigation property.
+ If placed on a navigation property, the name of the associated foreign key(s).
+ If a navigation property has multiple foreign keys, a comma separated list should be supplied.
+
+
+
+
+ If placed on a foreign key property, the name of the associated navigation property.
+ If placed on a navigation property, the name of the associated foreign key(s).
+
+
+
+
+ Specifies the inverse of a navigation property that represents the other end of the same relationship.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The navigation property representing the other end of the same relationship.
+
+
+
+ The navigation property representing the other end of the same relationship.
+
+
+
+
+ Specifies the database column that a property is mapped to.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name of the column the property is mapped to.
+
+
+
+ The name of the column the property is mapped to.
+
+
+
+
+ The zero-based order of the column the property is mapped to.
+
+
+
+
+ The database provider specific data type of the column the property is mapped to.
+
+
+
+
+ Specifies the maximum length of array/string data allowed in a property.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The maximum allowable length of array/string data.
+ Value must be greater than zero.
+
+
+
+
+ Initializes a new instance of the class.
+ The maximum allowable length supported by the database will be used.
+
+
+
+
+ Determines whether a specified object is valid. (Overrides )
+
+
+ This method returns true if the is null.
+ It is assumed the is used if the value may not be null.
+
+ The object to validate.
+ true if the value is null or less than or equal to the specified maximum length, otherwise false
+ Length is zero or less than negative one.
+
+
+
+ Applies formatting to a specified error message. (Overrides )
+
+ The name to include in the formatted string.
+ A localized string to describe the maximum acceptable length.
+
+
+
+ Checks that Length has a legal value. Throws InvalidOperationException if not.
+
+
+
+
+ Gets the maximum allowable length of the array/string data.
+
+
+
+
+ Specifies the minimum length of array/string data allowed in a property.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The minimum allowable length of array/string data.
+ Value must be greater than or equal to zero.
+
+
+
+
+ Determines whether a specified object is valid. (Overrides )
+
+
+ This method returns true if the is null.
+ It is assumed the is used if the value may not be null.
+
+ The object to validate.
+ true if the value is null or greater than or equal to the specified minimum length, otherwise false
+ Length is less than zero.
+
+
+
+ Applies formatting to a specified error message. (Overrides )
+
+ The name to include in the formatted string.
+ A localized string to describe the minimum acceptable length.
+
+
+
+ Checks that Length has a legal value. Throws InvalidOperationException if not.
+
+
+
+
+ Gets the minimum allowable length of the array/string data.
+
+
+
+
+ Specifies how the database generates values for a property.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The pattern used to generate values for the property in the database.
+
+
+
+ The pattern used to generate values for the property in the database.
+
+
+
+
+ The pattern used to generate values for a property in the database.
+
+
+
+
+ The database does not generate values.
+
+
+
+
+ The database generates a value when a row is inserted.
+
+
+
+
+ The database generates a value when a row is inserted or updated.
+
+
+
+
+ Denotes that a property or class should be excluded from database mapping.
+
+
+
+
+ Denotes that the class is a complex type.
+ Complex types are non-scalar properties of entity types that enable scalar properties to be organized within entities.
+ Complex types do not have keys and cannot be managed by the Entity Framework apart from the parent object.
+
+
+
+
+ Specifies the database table that a class is mapped to.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name of the table the class is mapped to.
+
+
+
+ The name of the table the class is mapped to.
+
+
+
+
+ The schema of the table the class is mapped to.
+
+
+
+
+ Constructs a new sys description.
+
+
+ description text.
+
+
+
+
+ Retrieves the description text.
+
+
+ description
+
+
+
+
+ AutoGenerated resource class. Usage:
+
+ string s = ResourceProvider.GetString(ResourceProvider.MyIdenfitier);
+
+
+
+
+ Constructs a new sys description.
+
+
+ description text.
+
+
+
+
+ Retrieves the description text.
+
+
+ description
+
+
+
+
+ AutoGenerated resource class. Usage:
+
+ string s = ResourceProvider.GetString(ResourceProvider.MyIdenfitier);
+
+
+
+
+ Constructs a new sys description.
+
+
+ description text.
+
+
+
+
+ Retrieves the description text.
+
+
+ description
+
+
+
+
+ AutoGenerated resource class. Usage:
+
+ string s = ResourceProvider.GetString(ResourceProvider.MyIdenfitier);
+
+
+
+
+ Constructs a new sys description.
+
+
+ description text.
+
+
+
+
+ Retrieves the description text.
+
+
+ description
+
+
+
+
+ AutoGenerated resource class. Usage:
+
+ string s = EntityRes.GetString(EntityRes.MyIdenfitier);
+
+
+
+
diff --git a/packages/Microsoft.Web.Infrastructure.1.0.0.0/Microsoft.Web.Infrastructure.1.0.0.0.nupkg b/packages/Microsoft.Web.Infrastructure.1.0.0.0/Microsoft.Web.Infrastructure.1.0.0.0.nupkg
new file mode 100644
index 0000000..eb60cce
Binary files /dev/null and b/packages/Microsoft.Web.Infrastructure.1.0.0.0/Microsoft.Web.Infrastructure.1.0.0.0.nupkg differ
diff --git a/packages/Microsoft.Web.Infrastructure.1.0.0.0/lib/net40/Microsoft.Web.Infrastructure.dll b/packages/Microsoft.Web.Infrastructure.1.0.0.0/lib/net40/Microsoft.Web.Infrastructure.dll
new file mode 100644
index 0000000..85f1138
Binary files /dev/null and b/packages/Microsoft.Web.Infrastructure.1.0.0.0/lib/net40/Microsoft.Web.Infrastructure.dll differ
diff --git a/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/Install.ps1 b/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/Install.ps1
new file mode 100644
index 0000000..6ad663f
--- /dev/null
+++ b/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/Install.ps1
@@ -0,0 +1,180 @@
+param($installPath, $toolsPath, $package, $project)
+
+if ($project.Type -eq 'Web Site') {
+ Import-Module (Join-Path $toolsPath VS.psd1)
+
+ $srcFiles = Join-Path $installPath "lib\net40\*.dll"
+
+ $projectRoot = Get-ProjectRoot $project
+ if (!$projectRoot) {
+ return;
+ }
+
+ $destDirectory = Join-Path $projectRoot "bin"
+ $fileSystem = Get-VsFileSystem
+
+ ls $srcFiles -Filter *.dll | %{
+ $destPath = Join-Path $destDirectory $_.Name
+ if (!(Test-Path $destPath)) {
+ $fileStream = $null
+ try {
+ $fileStream = [System.IO.File]::OpenRead($_.FullName)
+ $fileSystem.AddFile($destPath, $fileStream)
+ } catch {
+ # We don't want an exception to surface if we can't add the file for some reason
+ } finally {
+ if ($fileStream -ne $null) {
+ $fileStream.Dispose()
+ }
+ }
+ }
+ }
+}
+
+# SIG # Begin signature block
+# MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUoGth3MbLCESGRhoTpqwG6S5P
+# cz2gghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5
+# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
+# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
+# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy
+# MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
+# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
+# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
+# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5
+# z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6
+# ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN
+# KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA
+# dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb
+# cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH
+# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm
+# 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF
+# dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
+# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
+# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
+# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP
+# mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v
+# fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX
+# 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8
+# Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA
+# XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC
+# A6KgAwIBAgIKYQUTNgAAAAAAGjANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
+# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
+# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
+# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE3WhcNMTIxMDI1MjA0MjE3WjCBszEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
+# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjE1OUMtQTNGNy0yNTcwMSUwIwYD
+# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
+# AQEFAAOCAQ8AMIIBCgKCAQEAnDSYGckJKWOZAhZ1qIhXfaG7qUES/GSRpdYFeL93
+# 3OzmrrhQTsDjGr3tt/34IIpxOapyknKfignlE++RQe1hJWtRre6oQ7VhQiyd8h2x
+# 0vy39Xujc3YTsyuj25RhgFWhD23d2OwW/4V/lp6IfwAujnokumidj8bK9JB5euGb
+# 7wZdfvguw2oVnDwUL+fVlMgiG1HLqVWGIbda80ESOZ/wValOqiUrY/uRcjwPfMCW
+# ctzBo8EIyt7FybXACl+lnAuqcgpdCkB9LpjQq7KIj4aA6H3RvlVr4FgsyDY/+eYR
+# w/BDBYV4AxflLKcpfNPilRcAbNvcrTwZOgLgfWLUzvYdPQIDAQABo4IBCTCCAQUw
+# HQYDVR0OBBYEFPaDiyCHEe6Dy9vehaLSaIY3YXSQMB8GA1UdIwQYMBaAFCM0+NlS
+# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
+# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
+# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
+# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
+# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAGL0BQ1P5xtr
+# gudSDN95jKhVgTOX06TKyf6vSNt72m96KE/H0LeJ2NGmmcyRVgA7OOi3Mi/u+c9r
+# 2Zje1gL1QlhSa47aQNwWoLPUvyYVy0hCzNP9tPrkRIlmD0IOXvcEnyNIW7SJQcTa
+# bPg29D/CHhXfmEwAxLLs3l8BAUOcuELWIsiTmp7JpRhn/EeEHpFdm/J297GOch2A
+# djw2EUbKfjpI86/jSfYXM427AGOCnFejVqfDbpCjPpW3/GTRXRjCCwFQY6f889GA
+# noTjMjTdV5VAo21+2usuWgi0EAZeMskJ6TKCcRan+savZpiJ+dmetV8QI6N3gPJN
+# 1igAclCFvOUwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA
+# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
+# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+# eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT
+# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
+# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l
+# LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf
+# 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc
+# MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP
+# CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36
+# ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E
+# 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB
+# ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+# BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3
+# FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw
+# XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m
+# dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+# ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0
+# LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj
+# cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud
+# JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13
+# 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd
+# AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw
+# +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2
+# MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl
+# XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0
+# BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz
+# sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv
+# pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f
+# UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH
+# E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F
+# W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ
+# KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk
+# ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh
+# dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj
+# cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+# ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF
+# +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9
+# cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE
+# UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG
+# 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis
+# NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3
+# FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD
+# AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8
+# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is
+# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj
+# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB
+# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy
+# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho
+# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD
+# ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe
+# TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA
+# bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF
+# BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy
+# ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn
+# rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe
+# T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb
+# SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg
+# xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL
+# 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5
+# 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q
+# t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+
+# KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf
+# 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV
+# EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
+# QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE
+# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
+# BDEWBBRPPBgBB7wuCgUqrgSi1vxcimIHNTBqBgorBgEEAYI3AgEMMVwwWqA4gDYA
+# TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA
+# ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B
+# AQEFAASCAQBenMDYWCypjNo7KD7IL5zARP5tKWNHysnzREuFh7fBxnWaXirXW0J5
+# p5pHeRWLHWpTmoJDDPwMxvU06tRxX5muqvPutA3dqQiAvPFiZrqdNuBq5miZQ6hZ
+# v+jYhPUU/kTJGiurUXAtw+ulKCibVGjW0TgO16r45kmyspqezItMjAyKofbBl+C6
+# w0++YCZr1vv/f8gvqlg85ifhALjL/bUlpy3N6FrTGDeFzf7q7QhO2NrSOFpArSqw
+# 0vOBJW79VZ8HbNUu4I/vAysFRyj8RbIu+xm8iaRDslXwJI2ka4wBot6Ucj+zaUEY
+# WWfNvZ8NlpK/bpeifwknly96CLIiWqn8oYICHTCCAhkGCSqGSIb3DQEJBjGCAgow
+# ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
+# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
+# ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUTNgAAAAAAGjAH
+# BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF
+# MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFDSgrQ2+3zPn3zAO84uf
+# puLOI65jMA0GCSqGSIb3DQEBBQUABIIBAALljW1tyymODshEY9FwmnTFDbeqeeQw
+# YtspreF6jFWbILCt5TrUi3uW26NXGGmOu3U7Gsq30lCRX/k3wG2+/1NFtrScRz5n
+# Bdo2W8MWXqdRekK3gOAr0IuASfzOEFeBPFWuACGy6uiAb7hKbx37y+rU9ML9y0r4
+# d0JH7dLGL3lyzlB8eFwaZPtlJG35iXXD3CjqD7o+/6UdhR/54iyz4CfbPdmWZc3Q
+# uQRGLtkQrk+GpUl/R64AVPGISeDQikpf6dnws+6u8qHKlF5Ql+40rU3MypkRJPfg
+# PlnrdJlksA3SwVmcJUcEh6MyE7wTbXQDeY0jzCT18OpnrAnukeGIWCg=
+# SIG # End signature block
diff --git a/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/Uninstall.ps1 b/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/Uninstall.ps1
new file mode 100644
index 0000000..e17f823
--- /dev/null
+++ b/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/Uninstall.ps1
@@ -0,0 +1,174 @@
+param($installPath, $toolsPath, $package, $project)
+
+if ($project.Type -eq 'Web Site') {
+ Import-Module (Join-Path $toolsPath VS.psd1)
+
+ $projectRoot = Get-ProjectRoot $project
+ if (!$projectRoot) {
+ return;
+ }
+ $binDirectory = Join-Path $projectRoot "bin"
+ $srcDirectory = Join-Path $installPath "lib\net40\"
+ $fileSystem = Get-VsFileSystem
+
+ ls $srcDirectory -Filter *.dll | %{
+ $fileName = $_.Name
+ $fileInBin = Join-Path $binDirectory $fileName
+ if ($fileSystem.FileExists($fileInBin) -and ((Get-Item $fileInBin).Length -eq $_.Length)) {
+ # If a corresponding file exists in bin and has the exact file size as the one inside the package, it's most likely the same file.
+ try {
+ $fileSystem.DeleteFile($fileInBin)
+
+ } catch {
+ # We don't want an exception to surface if we can't delete the file
+ }
+ }
+ }
+}
+# SIG # Begin signature block
+# MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU5eFmkhW/FlQBz1yONQogDyby
+# xJGgghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5
+# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
+# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
+# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy
+# MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
+# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
+# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
+# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5
+# z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6
+# ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN
+# KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA
+# dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb
+# cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH
+# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm
+# 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF
+# dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
+# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
+# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
+# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP
+# mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v
+# fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX
+# 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8
+# Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA
+# XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC
+# A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
+# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
+# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
+# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
+# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD
+# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
+# AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R
+# sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS
+# 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK
+# f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ
+# CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl
+# MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw
+# HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS
+# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
+# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
+# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
+# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
+# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v
+# 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622
+# XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5
+# /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi
+# vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG
+# KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR
+# ARYRYopBdqAwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA
+# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
+# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+# eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT
+# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
+# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l
+# LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf
+# 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc
+# MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP
+# CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36
+# ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E
+# 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB
+# ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+# BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3
+# FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw
+# XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m
+# dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+# ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0
+# LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj
+# cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud
+# JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13
+# 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd
+# AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw
+# +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2
+# MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl
+# XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0
+# BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz
+# sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv
+# pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f
+# UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH
+# E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F
+# W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ
+# KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk
+# ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh
+# dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj
+# cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+# ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF
+# +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9
+# cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE
+# UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG
+# 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis
+# NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3
+# FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD
+# AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8
+# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is
+# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj
+# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB
+# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy
+# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho
+# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD
+# ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe
+# TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA
+# bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF
+# BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy
+# ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn
+# rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe
+# T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb
+# SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg
+# xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL
+# 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5
+# 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q
+# t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+
+# KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf
+# 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV
+# EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
+# QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE
+# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
+# BDEWBBRx+YgRrX5dASbxCVCxyd7ne/BLVDBqBgorBgEEAYI3AgEMMVwwWqA4gDYA
+# TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA
+# ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B
+# AQEFAASCAQAwsAzaCdBDpwei518RWEy+vbAGwNcMOB1ZOLEijtZSyarlaha5pjhb
+# pjrCDVpmEauR+LmF9101ej/27DeLVdXQ4I3+MmW9AB75IZ50/CJjiMfRgDEGWau0
+# NTKKA62iOY7Bu0hLN5cYeJnFSc8XE9ehq5MvwpNZZkXh39MqKl/CsFy+prWQp1/x
+# GiTYkZnM6jL9GpfHQBX8NXqlUTeENJBH8KpDd9fpFvmRDi084xJU28O98uWOnQPn
+# ndze19YIRcFq0Xs3DWARlawYTQdVp+/ud05tFI2LAb27ExK892tuq47ffVjQDta0
+# f6JA80pQ9iP6yUk/awhiMqKFxpdWUnK5oYICHTCCAhkGCSqGSIb3DQEJBjGCAgow
+# ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
+# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
+# ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUZlgAAAAAAGzAH
+# BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF
+# MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFG8OGHFrod8cqU9j8yCh
+# dVpgbfV9MA0GCSqGSIb3DQEBBQUABIIBAEl95dVnVN+61kqnMy6QKVQ483Zx3w3i
+# RB0gWZXbMfWzO4kfyoFzww4OHXvx/8ilGPbKLFUnL7Xf3I7kCrJbG4H2ibUh6ZmT
+# 7B4X4QGCa0FWiEyuEkzwYaFo3FR0tfUk2z3TBsqmKLoSSV2xbMg/zBCbpU47g3uh
+# pRpD5Mf6KlStl+ZOOaMVX58Hkea2aSb77oFBYh9DaENOMGLGWC21TLWEI4tnjB7v
+# tzVwFQrbFjXUuIlkjw/2y9D1YpgzzA8p4rdjm6gXXlqeNc7TL0jpfrH0HU77AwPs
+# AS/AhHbXuf3wh/1mABJpArpIKV4wTMx2dPer1BNeQy/OCUMOOaaJ6ig=
+# SIG # End signature block
diff --git a/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/VS.psd1 b/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/VS.psd1
new file mode 100644
index 0000000..a3e0ce5
--- /dev/null
+++ b/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/VS.psd1
@@ -0,0 +1,225 @@
+@{
+
+# Script module or binary module file associated with this manifest
+ModuleToProcess = 'VS.psm1'
+
+# Version number of this module.
+ModuleVersion = '0.1'
+
+# ID used to uniquely identify this module
+GUID = 'a9610a6b-5f18-4859-b4ed-c0b61b356f35'
+
+# Author of this module
+Author = 'Microsoft Corporation'
+
+# Company or vendor of this module
+CompanyName = 'Microsoft Corporation'
+
+# Copyright statement for this module
+Copyright = '(c) 2011 Microsoft Corporation. All rights reserved.'
+
+# Description of the functionality provided by this module
+Description = 'Powershell wrapper for NuGet.VisualStudio'
+
+# Minimum version of the Windows PowerShell engine required by this module
+PowerShellVersion = '2.0'
+
+# Name of the Windows PowerShell host required by this module
+PowerShellHostName = 'Package Manager Host'
+
+# Minimum version of the Windows PowerShell host required by this module
+PowerShellHostVersion = '1.2'
+
+# Minimum version of the .NET Framework required by this module
+DotNetFrameworkVersion = '4.0'
+
+# Minimum version of the common language runtime (CLR) required by this module
+CLRVersion = ''
+
+# Processor architecture (None, X86, Amd64, IA64) required by this module
+ProcessorArchitecture = ''
+
+# Modules that must be imported into the global environment prior to importing this module
+RequiredModules = @()
+
+# Assemblies that must be loaded prior to importing this module
+RequiredAssemblies = @()
+
+# Script files (.ps1) that are run in the caller's environment prior to importing this module
+ScriptsToProcess = @()
+
+# Type files (.ps1xml) to be loaded when importing this module
+TypesToProcess = @()
+
+# Format files (.ps1xml) to be loaded when importing this module
+FormatsToProcess = @()
+
+# Modules to import as nested modules of the module specified in ModuleToProcess
+NestedModules = @('VS.psm1')
+
+# Functions to export from this module
+FunctionsToExport = '*'
+
+# Cmdlets to export from this module
+CmdletsToExport = ''
+
+# Variables to export from this module
+VariablesToExport = ''
+
+# Aliases to export from this module
+AliasesToExport = ''
+
+# List of all files packaged with this module
+FileList = @()
+
+# Private data to pass to the module specified in ModuleToProcess
+PrivateData = ''
+
+}
+# SIG # Begin signature block
+# MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUhSWDsTDjCpf84MGVMRg7ZaTN
+# 54mgghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5
+# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
+# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
+# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy
+# MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
+# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
+# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
+# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5
+# z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6
+# ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN
+# KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA
+# dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb
+# cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH
+# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm
+# 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF
+# dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
+# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
+# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
+# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP
+# mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v
+# fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX
+# 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8
+# Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA
+# XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC
+# A6KgAwIBAgIKYQUTNgAAAAAAGjANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
+# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
+# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
+# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE3WhcNMTIxMDI1MjA0MjE3WjCBszEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
+# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjE1OUMtQTNGNy0yNTcwMSUwIwYD
+# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
+# AQEFAAOCAQ8AMIIBCgKCAQEAnDSYGckJKWOZAhZ1qIhXfaG7qUES/GSRpdYFeL93
+# 3OzmrrhQTsDjGr3tt/34IIpxOapyknKfignlE++RQe1hJWtRre6oQ7VhQiyd8h2x
+# 0vy39Xujc3YTsyuj25RhgFWhD23d2OwW/4V/lp6IfwAujnokumidj8bK9JB5euGb
+# 7wZdfvguw2oVnDwUL+fVlMgiG1HLqVWGIbda80ESOZ/wValOqiUrY/uRcjwPfMCW
+# ctzBo8EIyt7FybXACl+lnAuqcgpdCkB9LpjQq7KIj4aA6H3RvlVr4FgsyDY/+eYR
+# w/BDBYV4AxflLKcpfNPilRcAbNvcrTwZOgLgfWLUzvYdPQIDAQABo4IBCTCCAQUw
+# HQYDVR0OBBYEFPaDiyCHEe6Dy9vehaLSaIY3YXSQMB8GA1UdIwQYMBaAFCM0+NlS
+# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
+# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
+# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
+# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
+# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAGL0BQ1P5xtr
+# gudSDN95jKhVgTOX06TKyf6vSNt72m96KE/H0LeJ2NGmmcyRVgA7OOi3Mi/u+c9r
+# 2Zje1gL1QlhSa47aQNwWoLPUvyYVy0hCzNP9tPrkRIlmD0IOXvcEnyNIW7SJQcTa
+# bPg29D/CHhXfmEwAxLLs3l8BAUOcuELWIsiTmp7JpRhn/EeEHpFdm/J297GOch2A
+# djw2EUbKfjpI86/jSfYXM427AGOCnFejVqfDbpCjPpW3/GTRXRjCCwFQY6f889GA
+# noTjMjTdV5VAo21+2usuWgi0EAZeMskJ6TKCcRan+savZpiJ+dmetV8QI6N3gPJN
+# 1igAclCFvOUwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA
+# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
+# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+# eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT
+# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
+# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l
+# LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf
+# 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc
+# MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP
+# CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36
+# ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E
+# 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB
+# ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+# BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3
+# FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw
+# XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m
+# dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+# ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0
+# LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj
+# cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud
+# JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13
+# 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd
+# AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw
+# +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2
+# MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl
+# XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0
+# BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz
+# sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv
+# pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f
+# UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH
+# E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F
+# W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ
+# KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk
+# ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh
+# dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj
+# cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+# ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF
+# +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9
+# cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE
+# UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG
+# 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis
+# NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3
+# FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD
+# AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8
+# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is
+# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj
+# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB
+# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy
+# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho
+# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD
+# ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe
+# TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA
+# bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF
+# BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy
+# ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn
+# rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe
+# T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb
+# SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg
+# xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL
+# 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5
+# 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q
+# t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+
+# KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf
+# 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV
+# EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
+# QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE
+# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
+# BDEWBBQ/h+p82rMdy7PbO1bTNehunSLFiDBqBgorBgEEAYI3AgEMMVwwWqA4gDYA
+# TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA
+# ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B
+# AQEFAASCAQBCU3llm0n8p/Gfo247NTbxTxcz0XXel/GjLShxM4hatGZyz5eGZszW
+# WLT+UlifzLzU8H37SZaafTdiysB24O2Fub14g8ygv62IDNL4QjEiNSxAFq67tdzT
+# FQtClLlxRgnrcJood9NZCooAlGae1fS8EHgf2kE6d1KR/NYkQyZrAmUGyZ36YwD8
+# gMwqyLc7SnWIzv7pepJBSPvQyNYEKrX/9vnTOTYXo/Tjj32TxGWYN56551UaMtQP
+# ZrZS34yJLv1frZBGJEK3F5pw5MSPbaIvR1O0de7XjTlG2Z+T6hasG3zVCQi9ByW3
+# iavcbiEh8t0z1IaybtgExWgzer3oGSRSoYICHTCCAhkGCSqGSIb3DQEJBjGCAgow
+# ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
+# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
+# ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUTNgAAAAAAGjAH
+# BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF
+# MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFKZpdn6FFa4AHuOurptD
+# Zd4WyMlRMA0GCSqGSIb3DQEBBQUABIIBAGa/G9k0yOCXe7mPIcEWWWDkI4Mlw8ox
+# hYkusQhogDFjHKPsuJSH0y98ryBWNhWby9jJGf/NrXCABpKHc6hlXb/7i4+HC3J+
+# 6ernYBUaIUEjV7NBcTQZ2aRvxHRiM/uS9sN0xvT/g4WpWwnIfso72D2hz1jK6tc0
+# Og1tw1i+X/Bw/HwVcSV8rXFOLAYglt75/+4bF900d1lTCmrfPZ9Ec+XHq7HQQiey
+# h7RDchb0V4cX/vqxNx37FL4/L+r/SYqEVBtIKYaXiidlVcm4SnSXY8ZTp7UOZEHA
+# VBW/+MYgEYmjAWL7m+a2upQ+k+vmHn0499hhWGz12zfsLEPIzWJ9QhQ=
+# SIG # End signature block
diff --git a/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/VS.psm1 b/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/VS.psm1
new file mode 100644
index 0000000..2f330d7
--- /dev/null
+++ b/packages/Microsoft.Web.Infrastructure.1.0.0.0/tools/VS.psm1
@@ -0,0 +1,166 @@
+function Get-VsFileSystem {
+ $componentModel = Get-VSComponentModel
+ $fileSystemProvider = $componentModel.GetService([NuGet.VisualStudio.IFileSystemProvider])
+ $solutionManager = $componentModel.GetService([NuGet.VisualStudio.ISolutionManager])
+
+ $fileSystem = $fileSystemProvider.GetFileSystem($solutionManager.SolutionDirectory)
+
+ return $fileSystem
+}
+
+function Get-ProjectRoot($project) {
+ try {
+ $project.Properties.Item("FullPath").Value
+ } catch {
+
+ }
+}
+
+Export-ModuleMember *
+# SIG # Begin signature block
+# MIIbJQYJKoZIhvcNAQcCoIIbFjCCGxICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUjXEaZx7/tt/6noN5dH+MnQ7K
+# 82+gghXyMIIEoDCCA4igAwIBAgIKYRr16gAAAAAAajANBgkqhkiG9w0BAQUFADB5
+# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
+# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
+# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTExMDEyMjM5MTdaFw0xMzAy
+# MDEyMjQ5MTdaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
+# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
+# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
+# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDqR/PfCN/MR4GJYnddXm5
+# z5NLYZK2lfLvqiWdd/NLWm1JkMzgMbimAjeHdK/yrKBglLjHTiX+h9hY0iBOLfE6
+# ZS6SW6Zd5pV14DTlUCGcfTmXto5EI2YWpmUg4Dbrivqd4stgAfwqZMiHRRTxHsrN
+# KKy65VdZJtzsxUpsmuYDGikyPwCeg6wlDYTM3W+2arst94Q6bWYx6DZw/4SSkPdA
+# dp6ILkfWKxH3j+ASZSu8X+8V/PfsAWi3RQzuwASwDre9eGuujeRQ8TXingHS4etb
+# cYJhISDz1MneHLgCRWVJvn61N4anzexa37h2IPwRE1H8+ipQqrQe0DqAvmPK3IFH
+# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAAOm
+# 5aLEcaKCw492zSwNEuKdSigwDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFFdF
+# dBxdsPbIQwXgjFQtjzKn/kiWMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
+# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
+# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
+# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCQ9/h5kmnIj2uKYO58wa4+gThS9LrP
+# mYzwLT0T9K72YfB1OE5Zxj8HQ/kHfMdT5JFi1qh2FHWUhlmyuhDCf2wVPxkVww4v
+# fjnDz/5UJ1iUNWEHeW1RV7AS4epjcooWZuufOSozBDWLg94KXjG8nx3uNUUNXceX
+# 3yrgnX86SfvjSEUy3zZtCW52VVWsNMV5XW4C1cyXifOoaH0U6ml7C1V9AozETTC8
+# Yvd7peygkvAOKg6vV5spSM22IaXqHe/cCfWrYtYN7DVfa5nUsfB3Uvl36T9smFbA
+# XDahTl4Q9Ix6EZcgIDEIeW5yFl8cMFeby3yiVfVwbHjsoUMgruywNYsYMIIEujCC
+# A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
+# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
+# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
+# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
+# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD
+# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
+# AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R
+# sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS
+# 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK
+# f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ
+# CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl
+# MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw
+# HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS
+# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
+# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
+# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
+# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
+# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v
+# 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622
+# XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5
+# /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi
+# vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG
+# KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR
+# ARYRYopBdqAwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEBBQUA
+# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
+# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+# eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVT
+# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
+# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1l
+# LVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+hbLHf
+# 20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KSrphc
+# MCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP
+# CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZMJ36
+# ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E
+# 7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3m7IB
+# ziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+# BBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3
+# FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEw
+# XzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29m
+# dDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+# ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwu
+# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0
+# LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj
+# cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMGA1Ud
+# JQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK13
+# 2855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1iaHOEd
+# AYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw
+# +/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnMMUp2
+# MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hl
+# XFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+imyk0
+# BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMUvLOz
+# sE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a6lbv
+# pt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJssv7f
+# UciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH
+# E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp/w7F
+# W1zYTRuh2Povnj8uVRZryROj/TCCBoEwggRpoAMCAQICCmEVCCcAAAAAAAwwDQYJ
+# KoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixk
+# ARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh
+# dGUgQXV0aG9yaXR5MB4XDTA2MDEyNTIzMjIzMloXDTE3MDEyNTIzMzIzMloweTEL
+# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj
+# cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+# ggEKAoIBAQCfjd+FN4yxBlZmNk7UCus2I5Eer6uNWOnEz8GfOgokxMTEXrDuFRTF
+# +j6ZM2sZaXL0fAVf5ZklRNc1GYqQ3CiOkAzv1ZBhrd7cGHAtg8lvr4Us+N25uTD9
+# cXgcg/3IqbmCZw16uMEJwrwWl1c/HJjTadcwkJCQjTAf2CbUnnuI2eIJ7ZdJResE
+# UoF1e7i1IrguVrvXz6lOPAqDoqg6xa22AQ5qzyK0Ix9s1Sfnt37BtNUyrXklHEKG
+# 4p2F9FfaG1kvLSaSKcWz14WjnmBalOZ7nHtegjRLbf/U7ifQotzRkAzOfQ4VfIis
+# NMfAbJiESslEeWgo3yKDDbiKLEhh4v4RAgMBAAGjggIjMIICHzAQBgkrBgEEAYI3
+# FQEEAwIBADAdBgNVHQ4EFgQUV0V0HF2w9shDBeCMVC2PMqf+SJYwCwYDVR0PBAQD
+# AgHGMA8GA1UdEwEB/wQFMAMBAf8wgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8
+# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is
+# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj
+# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB
+# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy
+# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho
+# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD
+# ZXJ0LmNydDB2BgNVHSAEbzBtMGsGCSsGAQQBgjcVLzBeMFwGCCsGAQUFBwICMFAe
+# TgBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAA2ACAATQBpAGMAcgBvAHMA
+# bwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4ALjATBgNVHSUEDDAKBggrBgEF
+# BQcDAzANBgkqhkiG9w0BAQUFAAOCAgEAMLywIKRioKfvOSZhPdysxpnQhsQu9YMy
+# ZV4iPpvWhvjotp/Ki9Y7dQuhkT5M3WR0jEnyiIwYZ2z+FWZGuDpGQpfIkTfUJLHn
+# rNPqQRSDd9PJTwVfoxRSv5akLz5WWxB1zlPDzgVUabRlySSlD+EluBq5TeUCuVAe
+# T7OYDB2VAu4iWa0iywV0CwRFewRZ4NgPs+tM+GDdwnie0bqfa/fz7n5EEUDSvbqb
+# SxYIbqS+VeSmOBKjSPQcVXqKINF9/pHblI8vwntrpmSFT6PlLDQpXQu/9cc4L8Qg
+# xFYx9mnOhfgKkezQ1q66OAUM625PTJwDKaqi/BigKQwNXFxWI1faHJYNyCY2wUTL
+# 5eHmb4nnj+mYtXPTeOPtowE8dOVevGz2IYlnBeyXnbWx/a+m6XKlwzThL5/59Go5
+# 4i0Eglv80JyufJ0R+ea1Uxl0ujlKOet9QrNKOzc9wkp7J5jn4k6bG0pUOGojN75q
+# t0ju6kINSSSRjrcELpdv5OdFu49N/WDZ11nC2IDWYDR7t6GTIP6BuKqlXAnpig2+
+# KE1+1+gP7WV40TFfuWbb30LnC8wCB43f/yAGo0VltLMyjS6R4k20qcn6vGsEDrKf
+# 6p/epMkKlvSN99iYqPCFAghZpCCmLAsa8lIG7WnlZBgb4KOr3sp8FGFDuGX1NqNV
+# EytnLE0bMEwxggSdMIIEmQIBATCBhzB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
+# QQIKYRr16gAAAAAAajAJBgUrDgMCGgUAoIHKMBkGCSqGSIb3DQEJAzEMBgorBgEE
+# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
+# BDEWBBS5D8CFNM/aE6c8XOM5Hh0+N422ITBqBgorBgEEAYI3AgEMMVwwWqA4gDYA
+# TQBpAGMAcgBvAHMAbwBmAHQAIABBAFMAUAAuAE4ARQBUACAAVwBlAGIAIABQAGEA
+# ZwBlAHOhHoAcaHR0cDovL3d3dy5hc3AubmV0L3dlYm1hdHJpeDANBgkqhkiG9w0B
+# AQEFAASCAQAOnCgt85o0rg9FynTO++5HSg2WvHyB2nNfMOH60O09cMLGfvnh0Bgq
+# ft43lFD/8FaWeJq2zN/gPK1qFQbHZ2y4rCvMeBmgaPZm/u/srXUHU10GcBqjvScM
+# MX0h94fRX7mDkb1XLlPwm0QQZvOvebUzbsMIhA6OUahAMDTiR/7ZwDy23l7oO9u/
+# 7ZZRkbWpJr13AJ7cJc3iSvEpUJfxdbcxuUR3pakqWCQ7fX1chXuKw/f3NgSWe/un
+# jpXDDXWpurjpqKKj3CFf1gIvd0ag1yfxletiEAuEFlcgyuPEaTKDkHbab6CROdfT
+# a9YOC3fmp6lJEXRldTkWXs/XGoV9IZoDoYICHTCCAhkGCSqGSIb3DQEJBjGCAgow
+# ggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
+# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
+# ITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQQIKYQUZlgAAAAAAGzAH
+# BgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF
+# MQ8XDTExMTIzMTAyNDcxN1owIwYJKoZIhvcNAQkEMRYEFMD86sE3yf/lRFJLPdTR
+# mIzGknFjMA0GCSqGSIb3DQEBBQUABIIBAMSqWufi4zcg1wajaj5tSQugG1z3dhGA
+# hrU27USf9T49tR+HjpY/AY661PphIoozbo60sC7UYooBIJrelLfEFuWAF9LGNZ3M
+# uje2pI3eS3kajfLV9+UjrrSqa44MyYvi6cbiWagZ99ehcSboCLInB1HBrwiihpSM
+# VGfMdR/CpSub4m/vGE2Guo9ERA5cAu8k/P7/7u+YPIrUf6/IDglLplwmhAavTHY1
+# DL6GO3vQkmBio0XFVxqVegTnaU8WZTE4V1PgH7FV20MweCVxeDCyE6pY5Mu7ZULd
+# oBmomH8fas9OhqZpILWUf3eE9vv2A/rqxnuc3pKPJGX1bjVhVK7oIQE=
+# SIG # End signature block
diff --git a/packages/Microsoft.Web.Optimization.1.0.0-beta/Microsoft.Web.Optimization.1.0.0-beta.nupkg b/packages/Microsoft.Web.Optimization.1.0.0-beta/Microsoft.Web.Optimization.1.0.0-beta.nupkg
new file mode 100644
index 0000000..a011bd3
Binary files /dev/null and b/packages/Microsoft.Web.Optimization.1.0.0-beta/Microsoft.Web.Optimization.1.0.0-beta.nupkg differ
diff --git a/packages/Microsoft.Web.Optimization.1.0.0-beta/lib/net40/System.Web.Optimization.dll b/packages/Microsoft.Web.Optimization.1.0.0-beta/lib/net40/System.Web.Optimization.dll
new file mode 100644
index 0000000..9150f5b
Binary files /dev/null and b/packages/Microsoft.Web.Optimization.1.0.0-beta/lib/net40/System.Web.Optimization.dll differ
diff --git a/packages/Modernizr.2.0.6/Content/Scripts/modernizr-2.0.6-development-only.js b/packages/Modernizr.2.0.6/Content/Scripts/modernizr-2.0.6-development-only.js
new file mode 100644
index 0000000..bb7c192
--- /dev/null
+++ b/packages/Modernizr.2.0.6/Content/Scripts/modernizr-2.0.6-development-only.js
@@ -0,0 +1,1160 @@
+/*!
+* Note: While Microsoft is not the author of this script file, Microsoft
+* grants you the right to use this file for the sole purpose of either:
+* (i) interacting through your browser with the Microsoft website, subject
+* to the website's terms of use; or (ii) using the files as included with a
+* Microsoft product subject to the Microsoft Software License Terms for that
+* Microsoft product. Microsoft reserves all other rights to the files not
+* expressly granted by Microsoft, whether by implication, estoppel or
+* otherwise. The notices and licenses below are for informational purposes
+* only.
+*
+* Provided by Informational Purposes Only
+* MIT License
+*
+* Permission is hereby granted, free of charge, to any person obtaining a
+* copy of this software and associated documentation files (the "Software"),
+* to deal in the Software without restriction, including without limitation
+* the rights to use, copy, modify, merge, publish, distribute, sublicense,
+* and/or sell copies of the Software, and to permit persons to whom the
+* Software is furnished to do so, subject to the following conditions:
+*
+* The copyright notice and this permission notice shall be included in all
+* copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+* DEALINGS IN THE SOFTWARE.
+*
+* Modernizr v2.0.6
+* http://www.modernizr.com
+*
+* Copyright (c) 2009-2011 Faruk Ates, Paul Irish, Alex Sexton
+*/
+
+/*
+ * Modernizr tests which native CSS3 and HTML5 features are available in
+ * the current UA and makes the results available to you in two ways:
+ * as properties on a global Modernizr object, and as classes on the
+ * element. This information allows you to progressively enhance
+ * your pages with a granular level of control over the experience.
+ *
+ * Modernizr has an optional (not included) conditional resource loader
+ * called Modernizr.load(), based on Yepnope.js (yepnopejs.com).
+ * To get a build that includes Modernizr.load(), as well as choosing
+ * which tests to include, go to www.modernizr.com/download/
+ *
+ * Authors Faruk Ates, Paul Irish, Alex Sexton,
+ * Contributors Ryan Seddon, Ben Alman
+ */
+
+window.Modernizr = (function( window, document, undefined ) {
+
+ var version = '2.0.6',
+
+ Modernizr = {},
+
+ // option for enabling the HTML classes to be added
+ enableClasses = true,
+
+ docElement = document.documentElement,
+ docHead = document.head || document.getElementsByTagName('head')[0],
+
+ /**
+ * Create our "modernizr" element that we do most feature tests on.
+ */
+ mod = 'modernizr',
+ modElem = document.createElement(mod),
+ mStyle = modElem.style,
+
+ /**
+ * Create the input element for various Web Forms feature tests.
+ */
+ inputElem = document.createElement('input'),
+
+ smile = ':)',
+
+ toString = Object.prototype.toString,
+
+ // List of property values to set for css tests. See ticket #21
+ prefixes = ' -webkit- -moz- -o- -ms- -khtml- '.split(' '),
+
+ // Following spec is to expose vendor-specific style properties as:
+ // elem.style.WebkitBorderRadius
+ // and the following would be incorrect:
+ // elem.style.webkitBorderRadius
+
+ // Webkit ghosts their properties in lowercase but Opera & Moz do not.
+ // Microsoft foregoes prefixes entirely <= IE8, but appears to
+ // use a lowercase `ms` instead of the correct `Ms` in IE9
+
+ // More here: http://github.com/Modernizr/Modernizr/issues/issue/21
+ domPrefixes = 'Webkit Moz O ms Khtml'.split(' '),
+
+ ns = {'svg': 'http://www.w3.org/2000/svg'},
+
+ tests = {},
+ inputs = {},
+ attrs = {},
+
+ classes = [],
+
+ featureName, // used in testing loop
+
+
+ // Inject element with style element and some CSS rules
+ injectElementWithStyles = function( rule, callback, nodes, testnames ) {
+
+ var style, ret, node,
+ div = document.createElement('div');
+
+ if ( parseInt(nodes, 10) ) {
+ // In order not to give false positives we create a node for each test
+ // This also allows the method to scale for unspecified uses
+ while ( nodes-- ) {
+ node = document.createElement('div');
+ node.id = testnames ? testnames[nodes] : mod + (nodes + 1);
+ div.appendChild(node);
+ }
+ }
+
+ // '].join('');
+ div.id = mod;
+ div.innerHTML += style;
+ docElement.appendChild(div);
+
+ ret = callback(div, rule);
+ div.parentNode.removeChild(div);
+
+ return !!ret;
+
+ },
+
+
+ // adapted from matchMedia polyfill
+ // by Scott Jehl and Paul Irish
+ // gist.github.com/786768
+ /*
+ * The following excerpt, obtained from the above-cited github project, is provided for information purposes only.
+ *
+ * matchMedia() polyfill - test whether a CSS media type or media query applies
+ * primary author: Scott Jehl
+ * Copyright (c) 2010 Filament Group, Inc
+ * MIT license
+ * adapted by Paul Irish to use the matchMedia API
+ * http://dev.w3.org/csswg/cssom-view/#dom-window-matchmedia
+ * which webkit now supports: http://trac.webkit.org/changeset/72552
+ *
+ * Doesn't implement media.type as there's no way for crossbrowser property
+ * getters. instead of media.type == 'tv' just use media.matchMedium('tv')
+ */
+ testMediaQuery = function( mq ) {
+
+ if ( window.matchMedia ) {
+ return matchMedia(mq).matches;
+ }
+
+ var bool;
+
+ injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) {
+ bool = (window.getComputedStyle ?
+ getComputedStyle(node, null) :
+ node.currentStyle)['position'] == 'absolute';
+ });
+
+ return bool;
+
+ },
+
+
+ /**
+ * isEventSupported determines if a given element supports the given event
+ * function from http://yura.thinkweb2.com/isEventSupported/
+ */
+ isEventSupported = (function() {
+
+ var TAGNAMES = {
+ 'select': 'input', 'change': 'input',
+ 'submit': 'form', 'reset': 'form',
+ 'error': 'img', 'load': 'img', 'abort': 'img'
+ };
+
+ function isEventSupported( eventName, element ) {
+
+ element = element || document.createElement(TAGNAMES[eventName] || 'div');
+ eventName = 'on' + eventName;
+
+ // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those
+ var isSupported = eventName in element;
+
+ if ( !isSupported ) {
+ // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element
+ if ( !element.setAttribute ) {
+ element = document.createElement('div');
+ }
+ if ( element.setAttribute && element.removeAttribute ) {
+ element.setAttribute(eventName, '');
+ isSupported = is(element[eventName], 'function');
+
+ // If property was created, "remove it" (by setting value to `undefined`)
+ if ( !is(element[eventName], undefined) ) {
+ element[eventName] = undefined;
+ }
+ element.removeAttribute(eventName);
+ }
+ }
+
+ element = null;
+ return isSupported;
+ }
+ return isEventSupported;
+ })();
+
+ // hasOwnProperty shim by kangax needed for Safari 2.0 support
+ var _hasOwnProperty = ({}).hasOwnProperty, hasOwnProperty;
+ if ( !is(_hasOwnProperty, undefined) && !is(_hasOwnProperty.call, undefined) ) {
+ hasOwnProperty = function (object, property) {
+ return _hasOwnProperty.call(object, property);
+ };
+ }
+ else {
+ hasOwnProperty = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */
+ return ((property in object) && is(object.constructor.prototype[property], undefined));
+ };
+ }
+
+ /**
+ * setCss applies given styles to the Modernizr DOM node.
+ */
+ function setCss( str ) {
+ mStyle.cssText = str;
+ }
+
+ /**
+ * setCssAll extrapolates all vendor-specific css strings.
+ */
+ function setCssAll( str1, str2 ) {
+ return setCss(prefixes.join(str1 + ';') + ( str2 || '' ));
+ }
+
+ /**
+ * is returns a boolean for if typeof obj is exactly type.
+ */
+ function is( obj, type ) {
+ return typeof obj === type;
+ }
+
+ /**
+ * contains returns a boolean for if substr is found within str.
+ */
+ function contains( str, substr ) {
+ return !!~('' + str).indexOf(substr);
+ }
+
+ /**
+ * testProps is a generic CSS / DOM property test; if a browser supports
+ * a certain property, it won't return undefined for it.
+ * A supported CSS property returns empty string when its not yet set.
+ */
+ function testProps( props, prefixed ) {
+ for ( var i in props ) {
+ if ( mStyle[ props[i] ] !== undefined ) {
+ return prefixed == 'pfx' ? props[i] : true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * testPropsAll tests a list of DOM properties we want to check against.
+ * We specify literally ALL possible (known and/or likely) properties on
+ * the element including the non-vendor prefixed one, for forward-
+ * compatibility.
+ */
+ function testPropsAll( prop, prefixed ) {
+
+ var ucProp = prop.charAt(0).toUpperCase() + prop.substr(1),
+ props = (prop + ' ' + domPrefixes.join(ucProp + ' ') + ucProp).split(' ');
+
+ return testProps(props, prefixed);
+ }
+
+ /**
+ * testBundle tests a list of CSS features that require element and style injection.
+ * By bundling them together we can reduce the need to touch the DOM multiple times.
+ */
+ /*>>testBundle*/
+ var testBundle = (function( styles, tests ) {
+ var style = styles.join(''),
+ len = tests.length;
+
+ injectElementWithStyles(style, function( node, rule ) {
+ var style = document.styleSheets[document.styleSheets.length - 1],
+ // IE8 will bork if you create a custom build that excludes both fontface and generatedcontent tests.
+ // So we check for cssRules and that there is a rule available
+ // More here: https://github.com/Modernizr/Modernizr/issues/288 & https://github.com/Modernizr/Modernizr/issues/293
+ cssText = style.cssRules && style.cssRules[0] ? style.cssRules[0].cssText : style.cssText || "",
+ children = node.childNodes, hash = {};
+
+ while ( len-- ) {
+ hash[children[len].id] = children[len];
+ }
+
+ /*>>touch*/ Modernizr['touch'] = ('ontouchstart' in window) || hash['touch'].offsetTop === 9; /*>>touch*/
+ /*>>csstransforms3d*/ Modernizr['csstransforms3d'] = hash['csstransforms3d'].offsetLeft === 9; /*>>csstransforms3d*/
+ /*>>generatedcontent*/Modernizr['generatedcontent'] = hash['generatedcontent'].offsetHeight >= 1; /*>>generatedcontent*/
+ /*>>fontface*/ Modernizr['fontface'] = /src/i.test(cssText) &&
+ cssText.indexOf(rule.split(' ')[0]) === 0; /*>>fontface*/
+ }, len, tests);
+
+ })([
+ // Pass in styles to be injected into document
+ /*>>fontface*/ '@font-face {font-family:"font";src:url("https://")}' /*>>fontface*/
+
+ /*>>touch*/ ,['@media (',prefixes.join('touch-enabled),('),mod,')',
+ '{#touch{top:9px;position:absolute}}'].join('') /*>>touch*/
+
+ /*>>csstransforms3d*/ ,['@media (',prefixes.join('transform-3d),('),mod,')',
+ '{#csstransforms3d{left:9px;position:absolute}}'].join('')/*>>csstransforms3d*/
+
+ /*>>generatedcontent*/,['#generatedcontent:after{content:"',smile,'";visibility:hidden}'].join('') /*>>generatedcontent*/
+ ],
+ [
+ /*>>fontface*/ 'fontface' /*>>fontface*/
+ /*>>touch*/ ,'touch' /*>>touch*/
+ /*>>csstransforms3d*/ ,'csstransforms3d' /*>>csstransforms3d*/
+ /*>>generatedcontent*/,'generatedcontent' /*>>generatedcontent*/
+
+ ]);/*>>testBundle*/
+
+
+ /**
+ * Tests
+ * -----
+ */
+
+ tests['flexbox'] = function() {
+ /**
+ * setPrefixedValueCSS sets the property of a specified element
+ * adding vendor prefixes to the VALUE of the property.
+ * @param {Element} element
+ * @param {string} property The property name. This will not be prefixed.
+ * @param {string} value The value of the property. This WILL be prefixed.
+ * @param {string=} extra Additional CSS to append unmodified to the end of
+ * the CSS string.
+ */
+ function setPrefixedValueCSS( element, property, value, extra ) {
+ property += ':';
+ element.style.cssText = (property + prefixes.join(value + ';' + property)).slice(0, -property.length) + (extra || '');
+ }
+
+ /**
+ * setPrefixedPropertyCSS sets the property of a specified element
+ * adding vendor prefixes to the NAME of the property.
+ * @param {Element} element
+ * @param {string} property The property name. This WILL be prefixed.
+ * @param {string} value The value of the property. This will not be prefixed.
+ * @param {string=} extra Additional CSS to append unmodified to the end of
+ * the CSS string.
+ */
+ function setPrefixedPropertyCSS( element, property, value, extra ) {
+ element.style.cssText = prefixes.join(property + ':' + value + ';') + (extra || '');
+ }
+
+ var c = document.createElement('div'),
+ elem = document.createElement('div');
+
+ setPrefixedValueCSS(c, 'display', 'box', 'width:42px;padding:0;');
+ setPrefixedPropertyCSS(elem, 'box-flex', '1', 'width:10px;');
+
+ c.appendChild(elem);
+ docElement.appendChild(c);
+
+ var ret = elem.offsetWidth === 42;
+
+ c.removeChild(elem);
+ docElement.removeChild(c);
+
+ return ret;
+ };
+
+ // On the S60 and BB Storm, getContext exists, but always returns undefined
+ // http://github.com/Modernizr/Modernizr/issues/issue/97/
+
+ tests['canvas'] = function() {
+ var elem = document.createElement('canvas');
+ return !!(elem.getContext && elem.getContext('2d'));
+ };
+
+ tests['canvastext'] = function() {
+ return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function'));
+ };
+
+ // This WebGL test may false positive.
+ // But really it's quite impossible to know whether webgl will succeed until after you create the context.
+ // You might have hardware that can support a 100x100 webgl canvas, but will not support a 1000x1000 webgl
+ // canvas. So this feature inference is weak, but intentionally so.
+
+ // It is known to false positive in FF4 with certain hardware and the iPad 2.
+
+ tests['webgl'] = function() {
+ return !!window.WebGLRenderingContext;
+ };
+
+ /*
+ * The Modernizr.touch test only indicates if the browser supports
+ * touch events, which does not necessarily reflect a touchscreen
+ * device, as evidenced by tablets running Windows 7 or, alas,
+ * the Palm Pre / WebOS (touch) phones.
+ *
+ * Additionally, Chrome (desktop) used to lie about its support on this,
+ * but that has since been rectified: http://crbug.com/36415
+ *
+ * We also test for Firefox 4 Multitouch Support.
+ *
+ * For more info, see: http://modernizr.github.com/Modernizr/touch.html
+ */
+
+ tests['touch'] = function() {
+ return Modernizr['touch'];
+ };
+
+ /**
+ * geolocation tests for the new Geolocation API specification.
+ * This test is a standards compliant-only test; for more complete
+ * testing, including a Google Gears fallback, please see:
+ * http://code.google.com/p/geo-location-javascript/
+ * or view a fallback solution using google's geo API:
+ * http://gist.github.com/366184
+ */
+ tests['geolocation'] = function() {
+ return !!navigator.geolocation;
+ };
+
+ // Per 1.6:
+ // This used to be Modernizr.crosswindowmessaging but the longer
+ // name has been deprecated in favor of a shorter and property-matching one.
+ // The old API is still available in 1.6, but as of 2.0 will throw a warning,
+ // and in the first release thereafter disappear entirely.
+ tests['postmessage'] = function() {
+ return !!window.postMessage;
+ };
+
+ // Web SQL database detection is tricky:
+
+ // In chrome incognito mode, openDatabase is truthy, but using it will
+ // throw an exception: http://crbug.com/42380
+ // We can create a dummy database, but there is no way to delete it afterwards.
+
+ // Meanwhile, Safari users can get prompted on any database creation.
+ // If they do, any page with Modernizr will give them a prompt:
+ // http://github.com/Modernizr/Modernizr/issues/closed#issue/113
+
+ // We have chosen to allow the Chrome incognito false positive, so that Modernizr
+ // doesn't litter the web with these test databases. As a developer, you'll have
+ // to account for this gotcha yourself.
+ tests['websqldatabase'] = function() {
+ var result = !!window.openDatabase;
+ /* if (result){
+ try {
+ result = !!openDatabase( mod + "testdb", "1.0", mod + "testdb", 2e4);
+ } catch(e) {
+ }
+ } */
+ return result;
+ };
+
+ // Vendors had inconsistent prefixing with the experimental Indexed DB:
+ // - Webkit's implementation is accessible through webkitIndexedDB
+ // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB
+ // For speed, we don't test the legacy (and beta-only) indexedDB
+ tests['indexedDB'] = function() {
+ for ( var i = -1, len = domPrefixes.length; ++i < len; ){
+ if ( window[domPrefixes[i].toLowerCase() + 'IndexedDB'] ){
+ return true;
+ }
+ }
+ return !!window.indexedDB;
+ };
+
+ // documentMode logic from YUI to filter out IE8 Compat Mode
+ // which false positives.
+ tests['hashchange'] = function() {
+ return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7);
+ };
+
+ // Per 1.6:
+ // This used to be Modernizr.historymanagement but the longer
+ // name has been deprecated in favor of a shorter and property-matching one.
+ // The old API is still available in 1.6, but as of 2.0 will throw a warning,
+ // and in the first release thereafter disappear entirely.
+ tests['history'] = function() {
+ return !!(window.history && history.pushState);
+ };
+
+ tests['draganddrop'] = function() {
+ return isEventSupported('dragstart') && isEventSupported('drop');
+ };
+
+ // Mozilla is targeting to land MozWebSocket for FF6
+ // bugzil.la/659324
+ tests['websockets'] = function() {
+ for ( var i = -1, len = domPrefixes.length; ++i < len; ){
+ if ( window[domPrefixes[i] + 'WebSocket'] ){
+ return true;
+ }
+ }
+ return 'WebSocket' in window;
+ };
+
+
+ // http://css-tricks.com/rgba-browser-support/
+ tests['rgba'] = function() {
+ // Set an rgba() color and check the returned value
+
+ setCss('background-color:rgba(150,255,150,.5)');
+
+ return contains(mStyle.backgroundColor, 'rgba');
+ };
+
+ tests['hsla'] = function() {
+ // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally,
+ // except IE9 who retains it as hsla
+
+ setCss('background-color:hsla(120,40%,100%,.5)');
+
+ return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla');
+ };
+
+ tests['multiplebgs'] = function() {
+ // Setting multiple images AND a color on the background shorthand property
+ // and then querying the style.background property value for the number of
+ // occurrences of "url(" is a reliable method for detecting ACTUAL support for this!
+
+ setCss('background:url(https://),url(https://),red url(https://)');
+
+ // If the UA supports multiple backgrounds, there should be three occurrences
+ // of the string "url(" in the return value for elemStyle.background
+
+ return /(url\s*\(.*?){3}/.test(mStyle.background);
+ };
+
+
+ // In testing support for a given CSS property, it's legit to test:
+ // `elem.style[styleName] !== undefined`
+ // If the property is supported it will return an empty string,
+ // if unsupported it will return undefined.
+
+ // We'll take advantage of this quick test and skip setting a style
+ // on our modernizr element, but instead just testing undefined vs
+ // empty string.
+
+
+ tests['backgroundsize'] = function() {
+ return testPropsAll('backgroundSize');
+ };
+
+ tests['borderimage'] = function() {
+ return testPropsAll('borderImage');
+ };
+
+
+ // Super comprehensive table about all the unique implementations of
+ // border-radius: http://muddledramblings.com/table-of-css3-border-radius-compliance
+
+ tests['borderradius'] = function() {
+ return testPropsAll('borderRadius');
+ };
+
+ // WebOS unfortunately false positives on this test.
+ tests['boxshadow'] = function() {
+ return testPropsAll('boxShadow');
+ };
+
+ // FF3.0 will false positive on this test
+ tests['textshadow'] = function() {
+ return document.createElement('div').style.textShadow === '';
+ };
+
+
+ tests['opacity'] = function() {
+ // Browsers that actually have CSS Opacity implemented have done so
+ // according to spec, which means their return values are within the
+ // range of [0.0,1.0] - including the leading zero.
+
+ setCssAll('opacity:.55');
+
+ // The non-literal . in this regex is intentional:
+ // German Chrome returns this value as 0,55
+ // https://github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632
+ return /^0.55$/.test(mStyle.opacity);
+ };
+
+
+ tests['cssanimations'] = function() {
+ return testPropsAll('animationName');
+ };
+
+
+ tests['csscolumns'] = function() {
+ return testPropsAll('columnCount');
+ };
+
+
+ tests['cssgradients'] = function() {
+ /**
+ * For CSS Gradients syntax, please see:
+ * http://webkit.org/blog/175/introducing-css-gradients/
+ * https://developer.mozilla.org/en/CSS/-moz-linear-gradient
+ * https://developer.mozilla.org/en/CSS/-moz-radial-gradient
+ * http://dev.w3.org/csswg/css3-images/#gradients-
+ */
+
+ var str1 = 'background-image:',
+ str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));',
+ str3 = 'linear-gradient(left top,#9f9, white);';
+
+ setCss(
+ (str1 + prefixes.join(str2 + str1) + prefixes.join(str3 + str1)).slice(0, -str1.length)
+ );
+
+ return contains(mStyle.backgroundImage, 'gradient');
+ };
+
+
+ tests['cssreflections'] = function() {
+ return testPropsAll('boxReflect');
+ };
+
+
+ tests['csstransforms'] = function() {
+ return !!testProps(['transformProperty', 'WebkitTransform', 'MozTransform', 'OTransform', 'msTransform']);
+ };
+
+
+ tests['csstransforms3d'] = function() {
+
+ var ret = !!testProps(['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']);
+
+ // Webkit’s 3D transforms are passed off to the browser's own graphics renderer.
+ // It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in
+ // some conditions. As a result, Webkit typically recognizes the syntax but
+ // will sometimes throw a false positive, thus we must do a more thorough check:
+ if ( ret && 'webkitPerspective' in docElement.style ) {
+
+ // Webkit allows this media query to succeed only if the feature is enabled.
+ // `@media (transform-3d),(-o-transform-3d),(-moz-transform-3d),(-ms-transform-3d),(-webkit-transform-3d),(modernizr){ ... }`
+ ret = Modernizr['csstransforms3d'];
+ }
+ return ret;
+ };
+
+
+ tests['csstransitions'] = function() {
+ return testPropsAll('transitionProperty');
+ };
+
+
+ /*>>fontface*/
+ // @font-face detection routine by Diego Perini
+ // http://javascript.nwbox.com/CSSSupport/
+ tests['fontface'] = function() {
+ return Modernizr['fontface'];
+ };
+ /*>>fontface*/
+
+ // CSS generated content detection
+ tests['generatedcontent'] = function() {
+ return Modernizr['generatedcontent'];
+ };
+
+
+
+ // These tests evaluate support of the video/audio elements, as well as
+ // testing what types of content they support.
+ //
+ // We're using the Boolean constructor here, so that we can extend the value
+ // e.g. Modernizr.video // true
+ // Modernizr.video.ogg // 'probably'
+ //
+ // Codec values from : http://github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845
+ // thx to NielsLeenheer and zcorpan
+
+ // Note: in FF 3.5.1 and 3.5.0, "no" was a return value instead of empty string.
+ // Modernizr does not normalize for that.
+
+ tests['video'] = function() {
+ var elem = document.createElement('video'),
+ bool = false;
+
+ // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224
+ try {
+ if ( bool = !!elem.canPlayType ) {
+ bool = new Boolean(bool);
+ bool.ogg = elem.canPlayType('video/ogg; codecs="theora"');
+
+ // Workaround required for IE9, which doesn't report video support without audio codec specified.
+ // bug 599718 @ msft connect
+ var h264 = 'video/mp4; codecs="avc1.42E01E';
+ bool.h264 = elem.canPlayType(h264 + '"') || elem.canPlayType(h264 + ', mp4a.40.2"');
+
+ bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"');
+ }
+
+ } catch(e) { }
+
+ return bool;
+ };
+
+ tests['audio'] = function() {
+ var elem = document.createElement('audio'),
+ bool = false;
+
+ try {
+ if ( bool = !!elem.canPlayType ) {
+ bool = new Boolean(bool);
+ bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"');
+ bool.mp3 = elem.canPlayType('audio/mpeg;');
+
+ // Mimetypes accepted:
+ // https://developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements
+ // http://bit.ly/iphoneoscodecs
+ bool.wav = elem.canPlayType('audio/wav; codecs="1"');
+ bool.m4a = elem.canPlayType('audio/x-m4a;') || elem.canPlayType('audio/aac;');
+ }
+ } catch(e) { }
+
+ return bool;
+ };
+
+
+ // Firefox has made these tests rather unfun.
+
+ // In FF4, if disabled, window.localStorage should === null.
+
+ // Normally, we could not test that directly and need to do a
+ // `('localStorage' in window) && ` test first because otherwise Firefox will
+ // throw http://bugzil.la/365772 if cookies are disabled
+
+ // However, in Firefox 4 betas, if dom.storage.enabled == false, just mentioning
+ // the property will throw an exception. http://bugzil.la/599479
+ // This looks to be fixed for FF4 Final.
+
+ // Because we are forced to try/catch this, we'll go aggressive.
+
+ // FWIW: IE8 Compat mode supports these features completely:
+ // http://www.quirksmode.org/dom/html5.html
+ // But IE8 doesn't support either with local files
+
+ tests['localstorage'] = function() {
+ try {
+ return !!localStorage.getItem;
+ } catch(e) {
+ return false;
+ }
+ };
+
+ tests['sessionstorage'] = function() {
+ try {
+ return !!sessionStorage.getItem;
+ } catch(e){
+ return false;
+ }
+ };
+
+
+ tests['webworkers'] = function() {
+ return !!window.Worker;
+ };
+
+
+ tests['applicationcache'] = function() {
+ return !!window.applicationCache;
+ };
+
+
+ // Thanks to Erik Dahlstrom
+ tests['svg'] = function() {
+ return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect;
+ };
+
+ // specifically for SVG inline in HTML, not within XHTML
+ // test page: paulirish.com/demo/inline-svg
+ tests['inlinesvg'] = function() {
+ var div = document.createElement('div');
+ div.innerHTML = '';
+ return (div.firstChild && div.firstChild.namespaceURI) == ns.svg;
+ };
+
+ // Thanks to F1lt3r and lucideer, ticket #35
+ tests['smil'] = function() {
+ return !!document.createElementNS && /SVG/.test(toString.call(document.createElementNS(ns.svg, 'animate')));
+ };
+
+ tests['svgclippaths'] = function() {
+ // Possibly returns a false positive in Safari 3.2?
+ return !!document.createElementNS && /SVG/.test(toString.call(document.createElementNS(ns.svg, 'clipPath')));
+ };
+
+ // input features and input types go directly onto the ret object, bypassing the tests loop.
+ // Hold this guy to execute in a moment.
+ function webforms() {
+ // Run through HTML5's new input attributes to see if the UA understands any.
+ // We're using f which is the element created early on
+ // Mike Taylr has created a comprehensive resource for testing these attributes
+ // when applied to all input types:
+ // http://miketaylr.com/code/input-type-attr.html
+ // spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
+
+ // Only input placeholder is tested while textarea's placeholder is not.
+ // Currently Safari 4 and Opera 11 have support only for the input placeholder
+ // Both tests are available in feature-detects/forms-placeholder.js
+ Modernizr['input'] = (function( props ) {
+ for ( var i = 0, len = props.length; i < len; i++ ) {
+ attrs[ props[i] ] = !!(props[i] in inputElem);
+ }
+ return attrs;
+ })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));
+
+ // Run through HTML5's new input types to see if the UA understands any.
+ // This is put behind the tests runloop because it doesn't return a
+ // true/false like all the other tests; instead, it returns an object
+ // containing each input type with its corresponding true/false value
+
+ // Big thanks to @miketaylr for the html5 forms expertise. http://miketaylr.com/
+ Modernizr['inputtypes'] = (function(props) {
+
+ for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) {
+
+ inputElem.setAttribute('type', inputElemType = props[i]);
+ bool = inputElem.type !== 'text';
+
+ // We first check to see if the type we give it sticks..
+ // If the type does, we feed it a textual value, which shouldn't be valid.
+ // If the value doesn't stick, we know there's input sanitization which infers a custom UI
+ if ( bool ) {
+
+ inputElem.value = smile;
+ inputElem.style.cssText = 'position:absolute;visibility:hidden;';
+
+ if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) {
+
+ docElement.appendChild(inputElem);
+ defaultView = document.defaultView;
+
+ // Safari 2-4 allows the smiley as a value, despite making a slider
+ bool = defaultView.getComputedStyle &&
+ defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' &&
+ // Mobile android web browser has false positive, so must
+ // check the height to see if the widget is actually there.
+ (inputElem.offsetHeight !== 0);
+
+ docElement.removeChild(inputElem);
+
+ } else if ( /^(search|tel)$/.test(inputElemType) ){
+ // Spec doesnt define any special parsing or detectable UI
+ // behaviors so we pass these through as true
+
+ // Interestingly, opera fails the earlier test, so it doesn't
+ // even make it here.
+
+ } else if ( /^(url|email)$/.test(inputElemType) ) {
+ // Real url and email support comes with prebaked validation.
+ bool = inputElem.checkValidity && inputElem.checkValidity() === false;
+
+ } else if ( /^color$/.test(inputElemType) ) {
+ // chuck into DOM and force reflow for Opera bug in 11.00
+ // github.com/Modernizr/Modernizr/issues#issue/159
+ docElement.appendChild(inputElem);
+ docElement.offsetWidth;
+ bool = inputElem.value != smile;
+ docElement.removeChild(inputElem);
+
+ } else {
+ // If the upgraded input compontent rejects the :) text, we got a winner
+ bool = inputElem.value != smile;
+ }
+ }
+
+ inputs[ props[i] ] = !!bool;
+ }
+ return inputs;
+ })('search tel url email datetime date month week time datetime-local number range color'.split(' '));
+ }
+
+
+ // End of test definitions
+ // -----------------------
+
+
+
+ // Run through all tests and detect their support in the current UA.
+ // todo: hypothetically we could be doing an array of tests and use a basic loop here.
+ for ( var feature in tests ) {
+ if ( hasOwnProperty(tests, feature) ) {
+ // run the test, throw the return value into the Modernizr,
+ // then based on that boolean, define an appropriate className
+ // and push it into an array of classes we'll join later.
+ featureName = feature.toLowerCase();
+ Modernizr[featureName] = tests[feature]();
+
+ classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);
+ }
+ }
+
+ // input tests need to run.
+ Modernizr.input || webforms();
+
+
+ /**
+ * addTest allows the user to define their own feature tests
+ * the result will be added onto the Modernizr object,
+ * as well as an appropriate className set on the html element
+ *
+ * @param feature - String naming the feature
+ * @param test - Function returning true if feature is supported, false if not
+ */
+ Modernizr.addTest = function ( feature, test ) {
+ if ( typeof feature == "object" ) {
+ for ( var key in feature ) {
+ if ( hasOwnProperty( feature, key ) ) {
+ Modernizr.addTest( key, feature[ key ] );
+ }
+ }
+ } else {
+
+ feature = feature.toLowerCase();
+
+ if ( Modernizr[feature] !== undefined ) {
+ // we're going to quit if you're trying to overwrite an existing test
+ // if we were to allow it, we'd do this:
+ // var re = new RegExp("\\b(no-)?" + feature + "\\b");
+ // docElement.className = docElement.className.replace( re, '' );
+ // but, no rly, stuff 'em.
+ return;
+ }
+
+ test = typeof test == "boolean" ? test : !!test();
+
+ docElement.className += ' ' + (test ? '' : 'no-') + feature;
+ Modernizr[feature] = test;
+
+ }
+
+ return Modernizr; // allow chaining.
+ };
+
+
+ // Reset modElem.cssText to nothing to reduce memory footprint.
+ setCss('');
+ modElem = inputElem = null;
+
+ //>>BEGIN IEPP
+ // Enable HTML 5 elements for styling (and printing) in IE.
+ if ( window.attachEvent && (function(){ var elem = document.createElement('div');
+ elem.innerHTML = '';
+ return elem.childNodes.length !== 1; })() ) {
+
+ // iepp v2 by @jon_neal & afarkas : github.com/aFarkas/iepp/
+ (function(win, doc) {
+ win.iepp = win.iepp || {};
+ var iepp = win.iepp,
+ elems = iepp.html5elements || 'abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video',
+ elemsArr = elems.split('|'),
+ elemsArrLen = elemsArr.length,
+ elemRegExp = new RegExp('(^|\\s)('+elems+')', 'gi'),
+ tagRegExp = new RegExp('<(\/*)('+elems+')', 'gi'),
+ filterReg = /^\s*[\{\}]\s*$/,
+ ruleRegExp = new RegExp('(^|[^\\n]*?\\s)('+elems+')([^\\n]*)({[\\n\\w\\W]*?})', 'gi'),
+ docFrag = doc.createDocumentFragment(),
+ html = doc.documentElement,
+ head = html.firstChild,
+ bodyElem = doc.createElement('body'),
+ styleElem = doc.createElement('style'),
+ printMedias = /print|all/,
+ body;
+ function shim(doc) {
+ var a = -1;
+ while (++a < elemsArrLen)
+ // Use createElement so IE allows HTML5-named elements in a document
+ doc.createElement(elemsArr[a]);
+ }
+
+ iepp.getCSS = function(styleSheetList, mediaType) {
+ if(styleSheetList+'' === undefined){return '';}
+ var a = -1,
+ len = styleSheetList.length,
+ styleSheet,
+ cssTextArr = [];
+ while (++a < len) {
+ styleSheet = styleSheetList[a];
+ //currently no test for disabled/alternate stylesheets
+ if(styleSheet.disabled){continue;}
+ mediaType = styleSheet.media || mediaType;
+ // Get css from all non-screen stylesheets and their imports
+ if (printMedias.test(mediaType)) cssTextArr.push(iepp.getCSS(styleSheet.imports, mediaType), styleSheet.cssText);
+ //reset mediaType to all with every new *not imported* stylesheet
+ mediaType = 'all';
+ }
+ return cssTextArr.join('');
+ };
+
+ iepp.parseCSS = function(cssText) {
+ var cssTextArr = [],
+ rule;
+ while ((rule = ruleRegExp.exec(cssText)) != null){
+ // Replace all html5 element references with iepp substitute classnames
+ cssTextArr.push(( (filterReg.exec(rule[1]) ? '\n' : rule[1]) +rule[2]+rule[3]).replace(elemRegExp, '$1.iepp_$2')+rule[4]);
+ }
+ return cssTextArr.join('\n');
+ };
+
+ iepp.writeHTML = function() {
+ var a = -1;
+ body = body || doc.body;
+ while (++a < elemsArrLen) {
+ var nodeList = doc.getElementsByTagName(elemsArr[a]),
+ nodeListLen = nodeList.length,
+ b = -1;
+ while (++b < nodeListLen)
+ if (nodeList[b].className.indexOf('iepp_') < 0)
+ // Append iepp substitute classnames to all html5 elements
+ nodeList[b].className += ' iepp_'+elemsArr[a];
+ }
+ docFrag.appendChild(body);
+ html.appendChild(bodyElem);
+ // Write iepp substitute print-safe document
+ bodyElem.className = body.className;
+ bodyElem.id = body.id;
+ // Replace HTML5 elements with which is print-safe and shouldn't conflict since it isn't part of html5
+ bodyElem.innerHTML = body.innerHTML.replace(tagRegExp, '<$1font');
+ };
+
+
+ iepp._beforePrint = function() {
+ // Write iepp custom print CSS
+ styleElem.styleSheet.cssText = iepp.parseCSS(iepp.getCSS(doc.styleSheets, 'all'));
+ iepp.writeHTML();
+ };
+
+ iepp.restoreHTML = function(){
+ // Undo everything done in onbeforeprint
+ bodyElem.innerHTML = '';
+ html.removeChild(bodyElem);
+ html.appendChild(body);
+ };
+
+ iepp._afterPrint = function(){
+ // Undo everything done in onbeforeprint
+ iepp.restoreHTML();
+ styleElem.styleSheet.cssText = '';
+ };
+
+
+
+ // Shim the document and iepp fragment
+ shim(doc);
+ shim(docFrag);
+
+ //
+ if(iepp.disablePP){return;}
+
+ // Add iepp custom print style element
+ head.insertBefore(styleElem, head.firstChild);
+ styleElem.media = 'print';
+ styleElem.className = 'iepp-printshim';
+ win.attachEvent(
+ 'onbeforeprint',
+ iepp._beforePrint
+ );
+ win.attachEvent(
+ 'onafterprint',
+ iepp._afterPrint
+ );
+ })(window, document);
+ }
+ //>>END IEPP
+
+ // Assign private properties to the return object with prefix
+ Modernizr._version = version;
+
+ // expose these for the plugin API. Look in the source for how to join() them against your input
+ Modernizr._prefixes = prefixes;
+ Modernizr._domPrefixes = domPrefixes;
+
+ // Modernizr.mq tests a given media query, live against the current state of the window
+ // A few important notes:
+ // * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false
+ // * A max-width or orientation query will be evaluated against the current state, which may change later.
+ // * You must specify values. Eg. If you are testing support for the min-width media query use:
+ // Modernizr.mq('(min-width:0)')
+ // usage:
+ // Modernizr.mq('only screen and (max-width:768)')
+ Modernizr.mq = testMediaQuery;
+
+ // Modernizr.hasEvent() detects support for a given event, with an optional element to test on
+ // Modernizr.hasEvent('gesturestart', elem)
+ Modernizr.hasEvent = isEventSupported;
+
+ // Modernizr.testProp() investigates whether a given style property is recognized
+ // Note that the property names must be provided in the camelCase variant.
+ // Modernizr.testProp('pointerEvents')
+ Modernizr.testProp = function(prop){
+ return testProps([prop]);
+ };
+
+ // Modernizr.testAllProps() investigates whether a given style property,
+ // or any of its vendor-prefixed variants, is recognized
+ // Note that the property names must be provided in the camelCase variant.
+ // Modernizr.testAllProps('boxSizing')
+ Modernizr.testAllProps = testPropsAll;
+
+
+
+ // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards
+ // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... })
+ Modernizr.testStyles = injectElementWithStyles;
+
+
+ // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input
+ // Modernizr.prefixed('boxSizing') // 'MozBoxSizing'
+
+ // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style.
+ // Return values will also be the camelCase variant, if you need to translate that to hypenated style use:
+ //
+ // str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-');
+
+ // If you're trying to ascertain which transition end event to bind to, you might do something like...
+ //
+ // var transEndEventNames = {
+ // 'WebkitTransition' : 'webkitTransitionEnd',
+ // 'MozTransition' : 'transitionend',
+ // 'OTransition' : 'oTransitionEnd',
+ // 'msTransition' : 'msTransitionEnd', // maybe?
+ // 'transition' : 'transitionEnd'
+ // },
+ // transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ];
+
+ Modernizr.prefixed = function(prop){
+ return testPropsAll(prop, 'pfx');
+ };
+
+
+
+ // Remove "no-js" class from element, if it exists:
+ docElement.className = docElement.className.replace(/\bno-js\b/, '')
+
+ // Add the new classes to the element.
+ + (enableClasses ? ' js ' + classes.join(' ') : '');
+
+ return Modernizr;
+
+})(this, this.document);
\ No newline at end of file
diff --git a/packages/Modernizr.2.0.6/Modernizr.2.0.6.nupkg b/packages/Modernizr.2.0.6/Modernizr.2.0.6.nupkg
new file mode 100644
index 0000000..c5ee42b
Binary files /dev/null and b/packages/Modernizr.2.0.6/Modernizr.2.0.6.nupkg differ
diff --git a/packages/System.Json.4.0.20126.16343/System.Json.4.0.20126.16343.nupkg b/packages/System.Json.4.0.20126.16343/System.Json.4.0.20126.16343.nupkg
new file mode 100644
index 0000000..a809852
Binary files /dev/null and b/packages/System.Json.4.0.20126.16343/System.Json.4.0.20126.16343.nupkg differ
diff --git a/packages/System.Json.4.0.20126.16343/lib/net40/System.Json.dll b/packages/System.Json.4.0.20126.16343/lib/net40/System.Json.dll
new file mode 100644
index 0000000..11dd678
Binary files /dev/null and b/packages/System.Json.4.0.20126.16343/lib/net40/System.Json.dll differ
diff --git a/packages/System.Json.4.0.20126.16343/lib/net40/System.Json.xml b/packages/System.Json.4.0.20126.16343/lib/net40/System.Json.xml
new file mode 100644
index 0000000..60f772a
--- /dev/null
+++ b/packages/System.Json.4.0.20126.16343/lib/net40/System.Json.xml
@@ -0,0 +1,798 @@
+
+
+
+ System.Json
+
+
+
+ This class provides a low-level API for parsing HTML form URL-encoded data, also known as application/x-www-form-urlencoded data. The output of the parser is a instance. <remarks>This is a low-level API intended for use by other APIs. It has been optimized for performance and is not intended to be called directly from user code.</remarks>
+
+
+ Parses a collection of query string values as a .
+ The corresponding to the given query string values.
+ The collection of query string name-value pairs parsed in lexical order. Both names and values must be un-escaped so that they don't contain any encoding.
+
+
+ Parses a collection of query string values as a .
+ The corresponding to the given query string values.
+ The collection of query string name-value pairs parsed in lexical order. Both names and values must be un-escaped so that they don't contain any encoding.
+ The maximum depth of object graph encoded as x-www-form-urlencoded.
+
+
+ Parses a collection of query string values as a .
+ true if nameValuePairs was parsed successfully; otherwise false.
+ The collection of query string name-value pairs parsed in lexical order. Both names and values must be un-escaped so that they don't contain any encoding.
+ The maximum depth of object graph encoded as x-www-form-urlencoded.
+ The parsed result or null if parsing failed.
+
+
+ Parses a collection of query string values as a .
+ true if nameValuePairs was parsed successfully; otherwise false.
+ The collection of query string name-value pairs parsed in lexical order. Both names and values must be un-escaped so that they don't contain any encoding.
+ The parsed result or null if parsing failed.
+
+
+ Represents a Json array.
+
+
+ Initializes a new instance of the class with the specified items.
+ The enumeration of objects of type used to initialize the JavaScript Object Notation (JSON) array.
+
+
+ Initializes a new instance of the class with the specified items.
+ The array of type used to initialize the JavaScript Object Notation (JSON) array.
+
+
+ Adds a object to the end of the array.
+ The object to add.
+
+
+ Adds the elements from a collection of type to the array.
+ The collection of types to add.
+
+
+ Adds the elements from an array of type to the array.
+ The array of type to be added to the array.
+
+
+ Removes all JSON CLR types from the .
+
+
+ Indicates whether a specified JSON CLR type is in the .
+ true if the item is found in the ; otherwise, false.
+ The to check for in the array.
+
+
+ Copies the contents of the current JSON CLR array instance into a specified destination array beginning at the specified index.
+ The destination array to which the elements of the current array are copied.
+ The zero-based index in the destination array at which the copying of the elements of the JSON CLR array begins.
+
+
+ Gets the number of elements in the array.
+ The number of JSON value in the array.
+
+
+ Returns an enumerator that iterates through the objects in the array.
+ An enumerator that iterates through the elements in the array.
+
+
+ Searches for a specified object and returns the zero-based index of its first occurrence within the array.
+ The zero-based index of the first occurrence of item within the array, if found; otherwise, -1.
+ The object to look up.
+
+
+ Inserts a JSON CLR type into the array at a specified index.
+ The zero-based index at which the item should be inserted.
+ The object to insert.
+
+
+ Gets a value that indicates whether the is read-only.
+ true if the is read-only; otherwise, false.
+
+
+ Gets or sets the JSON value at a specified index.
+ The JSON value at the specified index.
+ The zero-based index of the element to get or set.
+
+
+ Gets the JSON type of the array.
+ The JSON type of the array.
+
+
+ Removes the first occurrence of the specified JSON value from the array.
+ true if the item is successfully removed; otherwise, false. This method also returns false if the item was not found in the array.
+ The JSON value to remove from the array.
+
+
+ Removes the JSON value at a specified index of array.
+ The zero-based index at which to remove the JSON value.
+
+
+ Returns an enumerator that iterates through the objects in the array.
+ An enumerator that iterates through the elements in the array.
+
+
+ Specifies the value or the default value of the Json array with specified index.
+ The value or the default value of the Json array.
+ The index used.
+
+
+ Represents a Json object.
+
+
+ Initializes a new instance of the class using items.
+ The collection of items.
+
+
+ Initializes a new instance of the class using items.
+ The collection of items.
+
+
+ Adds a key/value pair to the JSON CLR object.
+ The collections item to add.
+
+
+ Adds a key/value pair to the JSON CLR object type.
+ The key for the element added.
+ The JsonValue for the element added.
+
+
+ Adds a specified of key/value pairs to the current instance of the JsonObject.
+ The collections of items to add.
+
+
+ Adds a specified array of key/value pairs to the current instance of JsonObject.
+ The collections of items to add.
+
+
+ Removes all key/value pairs from the JSON CLR object.
+
+
+ Checks whether a key/value pair with a specified key exists in the JSON CLR object type.
+ True if the JSON CLR object contains the key; otherwise, false.
+ The key to check for.
+
+
+ Copies the contents of the JSON CLR object into a specified key/value destination array beginning at a specified index.
+ The destination array type to which the elements of the JsonObject are copied.
+ The zero based index at which to begin the insertion of the contents from the JSON CLR object type.
+
+
+ Gets the number of key/value pairs in the JsonObject.
+ The number of key/value pairs in the JsonObject.
+
+
+ Gets or sets an indexer used to look up a key/value pair based on a specified key.
+ The JsonValue that contains the key/value pair looked up.
+ The key of the pair to look up.
+
+
+ Gets the JSON type of the JsonObject.
+ The JSON type of the JsonObject.
+
+
+ Gets a collection that contains the keys in the JsonObject.
+ The collection that contains the keys in the JsonObject.
+
+
+ Removes the key/value pair with a specified from the JSON CLR object type.
+ True if the element is successfully found and removed; otherwise, false.
+ The key of the item to remove.
+
+
+ Checks whether the JsonObject contains a specified key/value pair.
+ True if the item is contained in the instance of the JsonObject; otherwise, false.
+ The key/value pair to check for.
+
+
+ Gets a value that indicates whether this JSON CLR object is read-only.
+ True if it is read-only; otherwise, false.
+
+
+ Removes the first occurrence of a specified key/value pair from the JsonObject.
+ True if item was successfully removed from the JsonObject; otherwise, false.
+ The key/value pair to remove.
+
+
+ Returns an enumerator that iterates through the key/value pairs in the JsonObject.
+ An enumerator that iterates through the key/value pairs in the JsonObject.
+
+
+ Attempts to get the value that corresponds to the specified key.
+ True if the instance of the JsonObject contains an element with the specified key; otherwise, false.
+ The key of the value to retrieve.
+ The primitive or structured JsonValue object that has the key specified.
+
+
+ Specifies the value or the default value of the Json object with specified key.
+ The value or the default value of the Json object.
+ The key used
+
+
+ Gets the collection that contains the values in the JsonObject.
+ The collection that contains the values in the JsonObject.
+
+
+ Represents a JavaScript Object Notation (JSON) primitive type in the common language runtime (CLR).
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with the specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with the specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified type.
+ The object that initializes the new instance.
+
+
+ Gets the JsonType that is associated with this object.
+ The JsonType that is associated with this object.
+
+
+ Reads the specified as type.
+ The specified object as type.
+ The object to read.
+
+
+ Creates a new using the specified object instance.
+ True if the was successfully created; otherwise, false.
+ The object representing the .
+ Contains the constructed .
+
+
+ Indicates whether the specified object reads as type.
+ True if the specified object reads as type; otherwise, false.
+ The specified type.
+ The object to read.
+
+
+ Gets the value of the specified object.
+ The value of the specified object.
+
+
+ Specifies primitive and structured JavaScript Object Notation (JSON) common language runtime (CLR) types.
+
+
+ The JSON String CLR type.
+
+
+ The JSON Number CLR type.
+
+
+ The JSON Object CLR type.
+
+
+ The JSON Array CLR type.
+
+
+ The JSON Boolean CLR type.
+
+
+ The default type.
+
+
+ Represents a Json value.
+
+
+ Returns the Json value as a dynamic object.
+ The Json value as a dynamic object.
+
+
+ Specifies the cast value of the .
+ The cast value of the .
+ The value.
+ The type.
+
+
+ Occurs when the Json Value is changed.
+
+
+ Gets the number of the changed listeners.
+ The number of the changed listeners.
+
+
+ Occurs when the Json Value is changing.
+
+
+ Gets the number of the changing listeners.
+ The number of the changing listeners.
+
+
+ Throws an InvalidOperationException.
+ True if the operation exception is invalid; otherwise, false.
+ The key to check.
+
+
+ Gets the number of Json values.
+ The number of Json values.
+
+
+ Returns an enumerator that can iterate through the .
+ The enumerator for the .
+
+
+ Gets the key value pair enumerator for the .
+ The key value pair enumerator for the .
+
+
+ Gets the Json value with specified index.
+ The Json value.
+ The index of the Json value.
+
+
+ Gets the Json value with specified key.
+ The Json value.
+ The key.
+
+
+ Gets or sets the object with specified index.
+ The object.
+ The index of the object.
+
+
+ Gets or sets the object with specified key.
+ The object with specified key.
+ The key for the object.
+
+
+ Gets a value that indicates whether the JSON CLR type represented by the derived type.
+ The JSON CLR type.
+
+
+ Deserializes the text-based JSON from a stream into JSON CLR type.
+ The text-based JSON from a stream.
+ A stream that contains text-based JSON content.
+
+
+ Deserializes the text-based JSON from a text reader into a JSON CLR type.
+ The text-based JSON from a text reader.
+ A TextReader over text-based JSON content.
+
+
+ Occurs when the save is ended.
+
+
+ Occurs when the save is started.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables explicit casts from an instance of type JsonValue to a object.
+ The initialized with the JsonValue specified.
+ The instance of JsonValue used to initialize the object.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonObject.
+ The JsonObject initialized with the specified.
+ The instance used to initialize the JsonObject.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Enables implicit casts from type to a JsonPrimitive.
+ The JsonValue initialized with the specified.
+ The instance used to initialize the JsonPrimitive.
+
+
+ Deserializes the text-based JSON into a JSON CLR type.
+ The text-based JSON into a JSON CLR type.
+ The text-based JSON.
+
+
+ Raises the event.
+ The sender of the event.
+ The event arguments.
+
+
+ Raises the event.
+ The sender of the event.
+ The event arguments.
+
+
+ Reads the as an object.
+ The read value as an object.
+ The generic type.
+
+
+ Reads the Jsonvalue with specified type.
+ The read value.
+ The type of the value.
+
+
+ Reads the Jsonvalue with specified type.
+ The read value.
+ The type of the value.
+ The fallback.
+
+
+ Reads the as an object with specified fallback.
+ The read value as an object.
+ The fallback.
+ The generic type.
+
+
+ Serializes the JsonValue CLR type into text-based JSON using a stream.
+ Stream to which to write text-based JSON.
+
+
+ Serializes the JsonValue CLR type into text-based JSON using a text writer.
+ The TextWriter used to write text-based JSON.
+
+
+ Sets the Json value with specified index and value.
+ The Json value.
+ The index.
+ The set value.
+
+
+ Sets the Json value with specified key and value.
+ The Json value.
+ the key.
+ The set value.
+
+
+ Gets the enumerator.
+ The enumerator.
+
+
+ Gets the meta object.
+ The meta abject.
+ The parameter.
+
+
+ Saves (serializes) this JSON CLR type into text-based JSON.
+ Returns string, which contains text-based JSON.
+
+
+ Indicates whether the tries to read as type.
+ True if the tries to read as type; otherwise, false.
+ the type.
+ the Json value.
+
+
+ Indicates whether the tries to read as a generic type.
+ True if the tries to read as a generic type; otherwise, false.
+ The value of the generic type.
+ The generic type.
+
+
+ Specifies the value or the default value of the Json object with specified index.
+ The value or the default value of the Json object.
+ The index.
+
+
+ Specifies the value or the default value of the Json object with specified indexes.
+ The value or the default value of the Json object.
+ The collection of index used.
+
+
+ Specifies the value or the default value of the Json object with specified key.
+ The value or the default value of the Json object.
+ the key used.
+
+
+ Specifies the Json value change.
+
+
+ Add a Json value.
+
+
+ Remove a Json value.
+
+
+ Replace a Json value.
+
+
+ Clear a Json value.
+
+
+ Represents Json value change event arguments.
+
+
+ Initializes a new instance of the class with a specified child, change and index object.
+ The child object that initializes the new instance.
+ The change object that initializes the new instance.
+ The index object that initializes the new instance.
+
+
+ Initializes a new instance of the class with a specified child, change and key object.
+ The child object that initializes the new instance.
+ The change object that initializes the new instance.
+ The key object that initializes the new instance.
+
+
+ Gets the Json value change.
+ The Json value change.
+
+
+ Gets the child of the .
+ The child of the .
+
+
+ Gets the index of the .
+ The index value of the .
+
+
+ Gets the key value of the .
+ The key value of the .
+
+
+ Represents Json value Linq expressions.
+
+
+ Converts the specified items to Json array.
+ The Json array items.
+ The items to convert.
+
+
+ Converts the specified items to Json object.
+ The Json object items.
+ The items to convert.
+
+
+ Represents Json value extensions.
+
+
+ Creates a form for the object.
+ The created form.
+ The value of the object.
+
+
+ Reads the as an object.
+ The read object.
+ the Json value.
+ The generic type.
+
+
+ Reads the as a type with specified value.
+ The read object.
+ The Json value.
+ The type.
+
+
+ Reads the as an object with specified fallback.
+ The read .
+ The Json value.
+ The fallback.
+ The generic type.
+
+
+ Tries to read the as a type.
+ The read as a type.
+ The Json value.
+ The type.
+ The value.
+
+
+ Tries to read the as a generic type.
+ The read as a generic type.
+ The Json value.
+ The value of the generic type.
+ The generic type.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.Http.2.0.20126.16343/System.Net.Http.2.0.20126.16343.nupkg b/packages/System.Net.Http.2.0.20126.16343/System.Net.Http.2.0.20126.16343.nupkg
new file mode 100644
index 0000000..5b4a4f9
Binary files /dev/null and b/packages/System.Net.Http.2.0.20126.16343/System.Net.Http.2.0.20126.16343.nupkg differ
diff --git a/packages/System.Net.Http.2.0.20126.16343/lib/net40/System.Net.Http.WebRequest.dll b/packages/System.Net.Http.2.0.20126.16343/lib/net40/System.Net.Http.WebRequest.dll
new file mode 100644
index 0000000..3f75c76
Binary files /dev/null and b/packages/System.Net.Http.2.0.20126.16343/lib/net40/System.Net.Http.WebRequest.dll differ
diff --git a/packages/System.Net.Http.2.0.20126.16343/lib/net40/System.Net.Http.WebRequest.xml b/packages/System.Net.Http.2.0.20126.16343/lib/net40/System.Net.Http.WebRequest.xml
new file mode 100644
index 0000000..2df026a
--- /dev/null
+++ b/packages/System.Net.Http.2.0.20126.16343/lib/net40/System.Net.Http.WebRequest.xml
@@ -0,0 +1,59 @@
+
+
+
+ System.Net.Http.WebRequest
+
+
+
+ Represents the class that is used to create special for use with the Real-Time-Communications (RTC) background notification infrastructure.
+
+
+ Creates a special for use with the Real-Time-Communications (RTC) background notification infrastructure.
+ Returns .An HTTP request message for use with the RTC background notification infrastructure.
+ The HTTP method.
+ The Uri the request is sent to.
+
+
+ Provides desktop-specific features not available to Metro apps or other environments.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a value that indicates whether to pipeline the request to the Internet resource.
+ Returns .true if the request should be pipelined; otherwise, false. The default is true.
+
+
+ Gets or sets a value indicating the level of authentication and impersonation used for this request.
+ Returns .A bitwise combination of the values. The default value is .
+
+
+ Gets or sets the cache policy for this request.
+ Returns .A object that defines a cache policy. The default is .
+
+
+ Gets or sets the collection of security certificates that are associated with this request.
+ Returns .The collection of security certificates associated with this request.
+
+
+ Gets or sets the amount of time, in milliseconds, the application will wait for 100-continue from the server before uploading data.
+ Returns .The amount of time, in milliseconds, the application will wait for 100-continue from the server before uploading data. The default value is 350 milliseconds.
+
+
+ Gets or sets the impersonation level for the current request.
+ Returns .The impersonation level for the request. The default is .
+
+
+ Gets or sets the maximum allowed length of the response headers.
+ Returns .The length, in kilobytes (1024 bytes), of the response headers.
+
+
+ Gets or sets a time-out in milliseconds when writing a request to or reading a response from a server.
+ Returns .The number of milliseconds before the writing or reading times out. The default value is 300,000 milliseconds (5 minutes).
+
+
+ Gets or sets a value that indicates whether to allow high-speed NTLM-authenticated connection sharing.
+ Returns .true to keep the authenticated connection open; otherwise, false.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.Http.2.0.20126.16343/lib/net40/System.Net.Http.dll b/packages/System.Net.Http.2.0.20126.16343/lib/net40/System.Net.Http.dll
new file mode 100644
index 0000000..19c3222
Binary files /dev/null and b/packages/System.Net.Http.2.0.20126.16343/lib/net40/System.Net.Http.dll differ
diff --git a/packages/System.Net.Http.2.0.20126.16343/lib/net40/System.Net.Http.xml b/packages/System.Net.Http.2.0.20126.16343/lib/net40/System.Net.Http.xml
new file mode 100644
index 0000000..562bf8c
--- /dev/null
+++ b/packages/System.Net.Http.2.0.20126.16343/lib/net40/System.Net.Http.xml
@@ -0,0 +1,1920 @@
+
+
+
+ System.Net.Http
+
+
+
+ Provides HTTP content based on a byte array.
+
+
+ Initializes a new instance of the class.
+ The content used to initialize the .
+ The parameter is null.
+
+
+ Initializes a new instance of the class.
+ The content used to initialize the .
+ The offset, in bytes, in the parameter used to initialize the .
+ The number of bytes in the starting from the parameter used to initialize the .
+ The parameter is null.
+ The parameter is less than zero.-or-The parameter is greater than the length of content specified by the parameter.-or-The parameter is less than zero.-or-The parameter is greater than the length of content specified by the parameter - minus the parameter.
+
+
+ Creates an HTTP content stream as an asynchronous operation for reading whose backing store is memory from the .
+ Returns .The task object representing the asynchronous operation.
+
+
+ Serialize and write the byte array provided in the constructor to an HTTP content stream as an asynchronous operation.
+ Returns . The task object representing the asynchronous operation.
+ The target stream.
+ Information about the transport, like channel binding token. This parameter may be null.
+
+
+ Determines whether a byte array has a valid length in bytes.
+ Returns .true if is a valid length; otherwise, false.
+ The length in bytes of the byte array.
+
+
+ Specifies how client certificates are provided.
+
+
+ The application manually provides the client certificates to the . This value is the default.
+
+
+ The will attempt to provide all available client certificates automatically.
+
+
+ A base type for HTTP handlers that delegate the processing of HTTP response messages to another handler, called the inner handler.
+
+
+ Creates a new instance of the class.
+
+
+ Creates a new instance of the class with a specific inner handler.
+ The inner handler which is responsible for processing the HTTP response messages.
+
+
+ Releases the unmanaged resources used by the , and optionally disposes of the managed resources.
+ true to release both managed and unmanaged resources; false to releases only unmanaged resources.
+
+
+ Gets or sets the inner handler which processes the HTTP response messages.
+ Returns .The inner handler for HTTP response messages.
+
+
+ Sends an HTTP request to the inner handler to send to the server as an asynchronous operation.
+ Returns . The task object representing the asynchronous operation.
+ The HTTP request message to send to the server.
+ A cancellation token to cancel operation.
+ The was null.
+
+
+ A container for name/value tuples encoded using application/x-www-form-urlencoded MIME type.
+
+
+ Initializes a new instance of the class with a specific collection of name/value pairs.
+ A collection of name/value pairs.
+
+
+ Provides a base class for sending HTTP requests and receiving HTTP responses from a resource identified by a URI.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with a specific handler.
+ The HTTP handler stack to use for sending requests.
+
+
+ Gets or sets the base address of Uniform Resource Identifier (URI) of the Internet resource used when sending requests.
+ Returns .The base address of Uniform Resource Identifier (URI) of the Internet resource used when sending requests.
+
+
+ Cancel all pending requests on this instance.
+
+
+ Gets the headers which should be sent with each request.
+ Returns .The headers which should be sent with each request.
+
+
+ Send a DELETE request to the specified Uri as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The was null.
+
+
+ Send a DELETE request to the specified Uri with a cancellation token as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ The was null.
+
+
+ Send a DELETE request to the specified Uri as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The was null.
+
+
+ Send a DELETE request to the specified Uri with a cancellation token as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ The was null.
+
+
+ Releases the unmanaged resources and disposes of the managed resources used by the .
+
+
+ Releases the unmanaged resources used by the and optionally disposes of the managed resources.
+ true to release both managed and unmanaged resources; false to releases only unmanaged resources.
+
+
+ Send a GET request to the specified Uri as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The was null.
+
+
+ Send a GET request to the specified Uri with an HTTP completion option as an asynchronous operation.
+ Returns .
+ The Uri the request is sent to.
+ An HTTP completion option value that indicates when the operation should be considered completed.
+ The was null.
+
+
+ Send a GET request to the specified Uri with an HTTP completion option and a cancellation token as an asynchronous operation.
+ Returns .
+ The Uri the request is sent to.
+ An HTTP completion option value that indicates when the operation should be considered completed.
+ A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ The was null.
+
+
+ Send a GET request to the specified Uri with a cancellation token as an asynchronous operation.
+ Returns .
+ The Uri the request is sent to.
+ A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ The was null.
+
+
+ Send a GET request to the specified Uri as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The was null.
+
+
+ Send a GET request to the specified Uri with an HTTP completion option as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ An HTTP completion option value that indicates when the operation should be considered completed.
+ The was null.
+
+
+ Send a GET request to the specified Uri with an HTTP completion option and a cancellation token as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ An HTTP completion option value that indicates when the operation should be considered completed.
+ A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ The was null.
+
+
+ Send a GET request to the specified Uri with a cancellation token as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ The was null.
+
+
+ Send a GET request to the specified Uri and return the response body as a byte array in an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The was null.
+
+
+ Send a GET request to the specified Uri and return the response body as a byte array in an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The was null.
+
+
+ Send a GET request to the specified Uri and return the response body as a stream in an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The was null.
+
+
+ Send a GET request to the specified Uri and return the response body as a stream in an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The was null.
+
+
+ Send a GET request to the specified Uri and return the response body as a string in an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The was null.
+
+
+ Send a GET request to the specified Uri and return the response body as a string in an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The was null.
+
+
+ Gets or sets the maximum number of bytes to buffer when reading the response content.
+ Returns .The maximum number of bytes to buffer when reading the response content.
+ The size specified is less than or equal to zero.
+ An operation has already been started on the current instance.
+ The current instance has been disposed.
+
+
+ Send a POST request to the specified Uri as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The HTTP request content sent to the server.
+ The was null.
+
+
+ Send a POST request with a cancellation token as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The HTTP request content sent to the server.
+ A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ The was null.
+
+
+ Send a POST request to the specified Uri as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The HTTP request content sent to the server.
+ The was null.
+
+
+ Send a POST request with a cancellation token as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The HTTP request content sent to the server.
+ A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ The was null.
+
+
+ Send a PUT request to the specified Uri as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The HTTP request content sent to the server.
+ The was null.
+
+
+ Send a PUT request with a cancellation token as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The HTTP request content sent to the server.
+ A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ The was null.
+
+
+ Send a PUT request to the specified Uri as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The HTTP request content sent to the server.
+ The was null.
+
+
+ Send a PUT request with a cancellation token as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The Uri the request is sent to.
+ The HTTP request content sent to the server.
+ A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ The was null.
+
+
+ Send an HTTP request as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The HTTP request message to send.
+ The was null.
+ The request message was already sent by the instance.
+
+
+ Send an HTTP request as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The HTTP request message to send.
+ When the operation should complete (as soon as a response is available or after reading the whole response content).
+ The was null.
+ The request message was already sent by the instance.
+
+
+ Send an HTTP request as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The HTTP request message to send.
+ When the operation should complete (as soon as a response is available or after reading the whole response content).
+ The cancellation token to cancel operation.
+ The was null.
+ The request message was already sent by the instance.
+
+
+ Send an HTTP request as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The HTTP request message to send.
+ The cancellation token to cancel operation.
+ The was null.
+ The request message was already sent by the instance.
+
+
+ Gets or sets the number of milliseconds to wait before the request times out.
+ Returns .The number of milliseconds to wait before the request times out.
+ The timeout specified is less than or equal to zero and is not .
+ An operation has already been started on the current instance.
+ The current instance has been disposed.
+
+
+ The default message handler used by .
+
+
+ Creates an instance of a class.
+
+
+ Gets or sets a value that indicates whether the handler should follow redirection responses.
+ Returns .true if the if the handler should follow redirection responses; otherwise false. The default value is true.
+
+
+ Gets or sets the type of decompression method used by the handler for automatic decompression of the HTTP content response.
+ Returns .The automatic decompression method used by the handler. The default value is .
+
+
+ Gets or sets the collection of security certificates that are associated with this handler.
+ Returns .The collection of security certificates associated with this handler.
+
+
+ Gets or sets the cookie container used to store server cookies by the handler.
+ Returns .The cookie container used to store server cookies by the handler.
+
+
+ Gets or sets authentication information used by this handler.
+ Returns .The authentication credentials associated with the handler. The default is null.
+
+
+ Releases the unmanaged resources used by the and optionally disposes of the managed resources.
+ true to release both managed and unmanaged resources; false to releases only unmanaged resources.
+
+
+ Gets or sets the maximum number of redirects that the handler follows.
+ Returns .The maximum number of redirection responses that the handler follows. The default value is 50.
+
+
+ Gets or sets the maximum request content buffer size used by the handler.
+ Returns .The maximum request content buffer size in bytes. The default value is 65,536 bytes.
+
+
+ Gets or sets a value that indicates whether the handler sends an Authorization header with the request.
+ Returns .true for the handler to send an HTTP Authorization header with requests after authentication has taken place; otherwise, false. The default is false.
+
+
+ Gets or sets proxy information used by the handler.
+ Returns .The proxy information used by the handler. The default value is null.
+
+
+ Creates an instance of based on the information provided in the as an operation that will not block.
+ Returns .The task object representing the asynchronous operation.
+ The HTTP request message.
+ A cancellation token to cancel the operation.
+ The was null.
+
+
+ Gets a value that indicates whether the handler supports automatic response content decompression.
+ Returns .true if the if the handler supports automatic response content decompression; otherwise false. The default value is true.
+
+
+ Gets a value that indicates whether the handler supports proxy settings.
+ Returns .true if the if the handler supports proxy settings; otherwise false. The default value is true.
+
+
+ Gets a value that indicates whether the handler supports configuration settings for the and properties.
+ Returns .true if the if the handler supports configuration settings for the and properties; otherwise false. The default value is true.
+
+
+ Gets or sets a value that indicates whether the handler uses the property to store server cookies and uses these cookies when sending requests.
+ Returns .true if the if the handler supports uses the property to store server cookies and uses these cookies when sending requests; otherwise false. The default value is true.
+
+
+ Gets or sets a value that controls whether default credentials are sent with requests by the handler.
+ Returns .true if the default credentials are used; otherwise false. The default value is false.
+
+
+ Gets or sets a value that indicates whether the handler uses a proxy for requests.
+ Returns .true if the handler should use a proxy for requests; otherwise false. The default value is true.
+
+
+ Indicates if operations should be considered completed either as soon as a response is available, or after reading the entire response message including the content.
+
+
+ The operation should complete after reading the entire response including the content.
+
+
+ The operation should complete as soon as a response is available and headers are read. The content is not read yet.
+
+
+ A base class representing an HTTP entity body and content headers.
+
+
+ Initializes a new instance of the class.
+
+
+ Write the HTTP content to a stream as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The target stream.
+
+
+ Write the HTTP content to a stream as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The target stream.
+ Information about the transport (channel binding token, for example). This parameter may be null.
+
+
+ Write the HTTP content to a memory stream as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+
+
+ Releases the unmanaged resources and disposes of the managed resources used by the .
+
+
+ Releases the unmanaged resources used by the and optionally disposes of the managed resources.
+ true to release both managed and unmanaged resources; false to releases only unmanaged resources.
+
+
+ Gets the HTTP content headers as defined in RFC 2616.
+ Returns .The content headers as defined in RFC 2616.
+
+
+ Serialize the HTTP content to a memory buffer as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+
+
+ Serialize the HTTP content to a memory buffer as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The maximum size, in bytes, of the buffer to use.
+
+
+ Write the HTTP content to a byte array as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+
+
+ Write the HTTP content to a stream as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+
+
+ Write the HTTP content to a string as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+
+
+ Serialize the HTTP content to a stream as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The target stream.
+ Information about the transport (channel binding token, for example). This parameter may be null.
+
+
+ Determines whether the HTTP content has a valid length in bytes.
+ Returns .true if is a valid length; otherwise, false.
+ The length in bytes of the HHTP content.
+
+
+ A base type for HTTP message handlers.
+
+
+ Initializes a new instance of the class.
+
+
+ Releases the unmanaged resources and disposes of the managed resources used by the .
+
+
+ Releases the unmanaged resources used by the and optionally disposes of the managed resources.
+ true to release both managed and unmanaged resources; false to releases only unmanaged resources.
+
+
+ Send an HTTP request as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The HTTP request message to send.
+ The cancellation token to cancel operation.
+ The was null.
+
+
+ A helper class for retrieving and comparing standard HTTP methods.
+
+
+ Initializes a new instance of the class with a specific HTTP method.
+ The HTTP method.
+
+
+ Represents an HTTP DELETE protocol method.
+ Returns .
+
+
+ Determines whether the specified is equal to the current .
+ Returns .true if the specified object is equal to the current object; otherwise, false.
+ The HTTP method to compare with the current object.
+
+
+ Determines whether the specified is equal to the current .
+ Returns .true if the specified object is equal to the current object; otherwise, false.
+ The object to compare with the current object.
+
+
+ Represents an HTTP GET protocol method.
+ Returns .
+
+
+ Serves as a hash function for this type.
+ Returns .A hash code for the current .
+
+
+ Represents an HTTP HEAD protocol method. The HEAD method is identical to GET except that the server only returns message-headers in the response, without a message-body.
+ Returns .
+
+
+ An HTTP method.
+ Returns .An HTTP method represented as a .
+
+
+ The equality operator for comparing two objects.
+ Returns .true if the specified and parameters are equal; otherwise, false.
+ The left to an equality operator.
+ The right to an equality operator.
+
+
+ The inequality operator for comparing two objects.
+ Returns .true if the specified and parameters are inequal; otherwise, false.
+ The left to an inequality operator.
+ The right to an inequality operator.
+
+
+ Represents an HTTP OPTIONS protocol method.
+ Returns .
+
+
+ Represents an HTTP POST protocol method that is used to post a new entity as an addition to a URI.
+ Returns .
+
+
+ Represents an HTTP PUT protocol method that is used to replace an entity identified by a URI.
+ Returns .
+
+
+ Returns a string that represents the current object.
+ Returns .A string representing the current object.
+
+
+ Represents an HTTP TRACE protocol method.
+ Returns .
+
+
+ A base class for exceptions thrown by the and classes.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with a specific message that describes the current exception.
+ A message that describes the current exception.
+
+
+ Initializes a new instance of the class with a specific message that describes the current exception and an inner exception.
+ A message that describes the current exception.
+ The inner exception.
+
+
+ Represents a HTTP request message.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with an HTTP method and a request .
+ The HTTP method.
+ A string that represents the request .
+
+
+ Initializes a new instance of the class with an HTTP method and a request .
+ The HTTP method.
+ The to request.
+
+
+ Gets or sets the contents of the HTTP message.
+ Returns .The content of a message
+
+
+ Releases the unmanaged resources and disposes of the managed resources used by the .
+
+
+ Releases the unmanaged resources used by the and optionally disposes of the managed resources.
+ true to release both managed and unmanaged resources; false to releases only unmanaged resources.
+
+
+ Gets the collection of HTTP request headers.
+ Returns .The collection of HTTP request headers.
+
+
+ Gets or sets the HTTP method used by the HTTP request message.
+ Returns .The HTTP method used by the request message. The default is the GET method.
+
+
+ Gets a set of properties for the HTTP request.
+ Returns .
+
+
+ Gets or sets the used for the HTTP request.
+ Returns .The used for the HTTP request.
+
+
+ Returns a string that represents the current object.
+ Returns .A string representation of the current object.
+
+
+ Gets or sets the HTTP message version.
+ Returns .The HTTP message version. The default is 1.1.
+
+
+ Represents a HTTP response message.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with a specific .
+ The status code of the HTTP response.
+
+
+ Gets or sets the content of a HTTP response message.
+ Returns .The content of the HTTP response message.
+
+
+ Releases the unmanaged resources and disposes of unmanaged resources used by the .
+
+
+ Releases the unmanaged resources used by the and optionally disposes of the managed resources.
+ true to release both managed and unmanaged resources; false to releases only unmanaged resources.
+
+
+ Throws an exception if the property for the HTTP response is false.
+ Returns .The HTTP response message if the call is successful.
+
+
+ Gets the collection of HTTP response headers.
+ Returns .The collection of HTTP response headers.
+
+
+ Gets a value that indicates if the HTTP response was successful.
+ Returns .A value that indicates if the HTTP response was successful. true if was in the range 200-299; otherwise false.
+
+
+ Gets or sets the reason phrase which typically is sent by servers together with the status code.
+ Returns .The reason phrase sent by the server.
+
+
+ Gets or sets the request message which led to this response message.
+ Returns .The request message which led to this response message.
+
+
+ Gets or sets the status code of the HTTP response.
+ Returns .The status code of the HTTP response.
+
+
+ Returns a string that represents the current object.
+ Returns .A string representation of the current object.
+
+
+ Gets or sets the HTTP message version.
+ Returns .The HTTP message version. The default is 1.1.
+
+
+ A base type for handlers which only do some small processing of request and/or response messages.
+
+
+ Creates an instance of a class.
+
+
+ Creates an instance of a class with a specific inner handler.
+ The inner handler which is responsible for processing the HTTP response messages.
+
+
+ Processes an HTTP request message.
+ Returns .The HTTP request message that was processed.
+ The HTTP request message to process.
+ A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+
+
+ Processes an HTTP response message.
+ Returns .The HTTP response message that was processed.
+ The HTTP response message to process.
+ A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+
+
+ Sends an HTTP request to the inner handler to send to the server as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The HTTP request message to send to the server.
+ A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ The was null.
+
+
+ Provides a collection of objects that get serialized using the multipart/* content type specification.
+
+
+ Creates a new instance of the class.
+
+
+ Creates a new instance of the class.
+ The subtype of the multipart content.
+ The was null or contains only white space characters.
+
+
+ Creates a new instance of the class.
+ The subtype of the multipart content.
+ The boundary string for the multipart content.
+ The was null or an empty string.The was null or contains only white space characters.-or-The ends with a space character.
+ The length of the was greater than 70.
+
+
+ Add multipart HTTP content to a collection of objects that get serialized using the multipart/* content type specification.
+ The HTTP content to add to the collection.
+ The was null.
+
+
+ Releases the unmanaged resources used by the and optionally disposes of the managed resources.
+ true to release both managed and unmanaged resources; false to releases only unmanaged resources.
+
+
+ Returns an enumerator that iterates through the collection of objects that get serialized using the multipart/* content type specification..
+ Returns .An object that can be used to iterate through the collection.
+
+
+ Serialize the multipart HTTP content to a stream as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The target stream.
+ Information about the transport (channel binding token, for example). This parameter may be null.
+
+
+ The explicit implementation of the method.
+ Returns .An object that can be used to iterate through the collection.
+
+
+ Determines whether the HTTP multipart content has a valid length in bytes.
+ Returns .true if is a valid length; otherwise, false.
+ The length in bytes of the HHTP content.
+
+
+ Provides a container for content encoded using multipart/form-data MIME type.
+
+
+ Creates a new instance of the class.
+
+
+ Creates a new instance of the class.
+ The boundary string for the multipart form data content.
+ The was null or contains only white space characters.-or-The ends with a space character.
+ The length of the was greater than 70.
+
+
+ Add HTTP content to a collection of objects that get serialized to multipart/form-data MIME type.
+ The HTTP content to add to the collection.
+ The was null.
+
+
+ Add HTTP content to a collection of objects that get serialized to multipart/form-data MIME type.
+ The HTTP content to add to the collection.
+ The name for the HTTP content to add.
+ The was null or contains only white space characters.
+ The was null.
+
+
+ Add HTTP content to a collection of objects that get serialized to multipart/form-data MIME type.
+ The HTTP content to add to the collection.
+ The name for the HTTP content to add.
+ The file name for the HTTP content to add to the collection.
+ The was null or contains only white space characters.-or-The was null or contains only white space characters.
+ The was null.
+
+
+ Provides HTTP content based on a stream.
+
+
+ Creates a new instance of the class.
+ The content used to initialize the .
+
+
+ Creates a new instance of the class.
+ The content used to initialize the .
+ The size, in bytes, of the buffer for the .
+ The was null.
+ The was less than or equal to zero.
+
+
+ Write the HTTP stream content to a memory stream as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+
+
+ Releases the unmanaged resources used by the and optionally disposes of the managed resources.
+ true to release both managed and unmanaged resources; false to releases only unmanaged resources.
+
+
+ Serialize the HTTP content to a stream as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation.
+ The target stream.
+ Information about the transport (channel binding token, for example). This parameter may be null.
+
+
+ Determines whether the stream content has a valid length in bytes.
+ Returns .true if is a valid length; otherwise, false.
+ The length in bytes of the stream content.
+
+
+ Provides HTTP content based on a string.
+
+
+ Creates a new instance of the class.
+ The content used to initialize the .
+
+
+ Creates a new instance of the class.
+ The content used to initialize the .
+ The encoding to use for the content.
+
+
+ Creates a new instance of the class.
+ The content used to initialize the .
+ The encoding to use for the content.
+ The media type to use for the content.
+
+
+ Represents authentication information in Authorization, ProxyAuthorization, WWW-Authneticate, and Proxy-Authenticate header values.
+
+
+ Initializes a new instance of the class.
+ The scheme to use for authorization.
+
+
+ Initializes a new instance of the class.
+ The scheme to use for authorization.
+ The credentials containing the authentication information of the user agent for the resource being requested.
+
+
+ Determines whether the specified is equal to the current object.
+ Returns .true if the specified is equal to the current object; otherwise, false.
+ The object to compare with the current object.
+
+
+ Serves as a hash function for an object.
+ Returns .A hash code for the current object.
+
+
+ Gets the credentials containing the authentication information of the user agent for the resource being requested.
+ Returns .The credentials containing the authentication information.
+
+
+ Converts a string to an instance.
+ Returns .An instance.
+ A string that represents authentication header value information.
+
+ is a null reference.
+
+ is not valid authentication header value information.
+
+
+ Gets the scheme to use for authorization.
+ Returns .The scheme to use for authorization.
+
+
+ Creates a new object that is a copy of the current instance.
+ Returns .A copy of the current instance.
+
+
+ Returns a string that represents the current object.
+ Returns .A string that represents the current object.
+
+
+ Determines whether a string is valid information.
+ Returns .true if is valid information; otherwise, false.
+ The string to validate.
+ The version of the string.
+
+
+ Represents the value of the Cache-Control header.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether the specified is equal to the current object.
+ Returns .true if the specified is equal to the current object; otherwise, false.
+ The object to compare with the current object.
+
+
+ Cache-extension tokens, each with an optional assigned value.
+ Returns .A collection of cache-extension tokens each with an optional assigned value.
+
+
+ Serves as a hash function for a object.
+ Returns .A hash code for the current object.
+
+
+ The maximum age, specified in seconds, that the HTTP client is willing to accept a response.
+ Returns .The time in seconds.
+
+
+ Whether an HTTP client is willing to accept a response that has exceeded its expiration time.
+ Returns .true if the HTTP client is willing to accept a response that has exceed the expiration time; otherwise, false.
+
+
+ The maximum time, in seconds, an HTTP client is willing to accept a response that has exceeded its expiration time.
+ Returns .The time in seconds.
+
+
+ The freshness lifetime, in seconds, that an HTTP client is willing to accept a response.
+ Returns .The time in seconds.
+
+
+ Whether the origin server require revalidation of a cache entry on any subsequent use when the cache entry becomes stale.
+ Returns .true if the origin server requires revalidation of a cache entry on any subsequent use when the entry becomes stale; otherwise, false.
+
+
+ Whether an HTTP client is willing to accept a cached response.
+ Returns .true if the HTTP client is willing to accept a cached response; otherwise, false.
+
+
+ A collection of fieldnames in the "no-cache" directive in a cache-control header field on an HTTP response.
+ Returns .A collection of fieldnames.
+
+
+ Whether a cache must not store any part of either the HTTP request mressage or any response.
+ Returns .true if a cache must not store any part of either the HTTP request mressage or any response; otherwise, false.
+
+
+ Whether a cache or proxy must not change any aspect of the entity-body.
+ Returns .true if a cache or proxy must not change any aspect of the entity-body; otherwise, false.
+
+
+ Whether a cache should either respond using a cached entry that is consistent with the other constraints of the HTTP request, or respond with a 504 (Gateway Timeout) status.
+ Returns .true if a cache should either respond using a cached entry that is consistent with the other constraints of the HTTP request, or respond with a 504 (Gateway Timeout) status; otherwise, false.
+
+
+ Converts a string to an instance.
+ Returns .A instance.
+ A string that represents cache-control header value information.
+
+ is a null reference.
+
+ is not valid cache-control header value information.
+
+
+ Whether all or part of the HTTP response message is intended for a single user and must not be cached by a shared cache.
+ Returns .true if the HTTP response message is intended for a single user and must not be cached by a shared cache; otherwise, false.
+
+
+ A collection fieldnames in the "private" directive in a cache-control header field on an HTTP response.
+ Returns .A collection of fieldnames.
+
+
+ Whether the origin server require revalidation of a cache entry on any subsequent use when the cache entry becomes stale for shared user agent caches.
+ Returns .true if the origin server requires revalidation of a cache entry on any subsequent use when the entry becomes stale for shared user agent caches; otherwise, false.
+
+
+ Whether an HTTP response may be cached by any cache, even if it would normally be non-cacheable or cacheable only within a non- shared cache.
+ Returns .true if the HTTP response may be cached by any cache, even if it would normally be non-cacheable or cacheable only within a non- shared cache; otherwise, false.
+
+
+ Returns .
+
+
+ Creates a new object that is a copy of the current instance.
+ Returns .A copy of the current instance.
+
+
+ Returns a string that represents the current object.
+ Returns .A string that represents the current object.
+
+
+ Determines whether a string is valid information.
+ Returns .true if is valid information; otherwise, false.
+ The string to validate.
+ The version of the string.
+
+
+ Represents the value of the Content-Disposition header.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ The date at which the file was created.
+ Returns .The file creation date.
+
+
+ The disposition type for a content body part.
+ Returns .The disposition type.
+
+
+ Determines whether the specified is equal to the current object.
+ Returns .true if the specified is equal to the current object; otherwise, false.
+ The object to compare with the current object.
+
+
+ A suggestion for how to construct a filename for storing the message payload to be used if the entity is detached and stored in a separate file.
+ Returns .A suggested filename.
+
+
+ A suggestion for how to construct filenames for storing message payloads to be used if the entities are detached and stored in a separate files.
+ Returns .A suggested filename of the form filename*.
+
+
+ Serves as a hash function for an object.
+ Returns .A hash code for the current object.
+
+
+ The date at which the file was last modified.
+ Returns .The file modification date.
+
+
+ The name for a content body part.
+ Returns .The name for the content body part.
+
+
+ A set of parameters included the Content-Disposition header.
+ Returns .A collection of parameters.
+
+
+ Converts a string to an instance.
+ Returns .An instance.
+ A string that represents content disposition header value information.
+
+ is a null reference.
+
+ is not valid content disposition header value information.
+
+
+ The date the file was last read.
+ Returns .The last read date.
+
+
+ The approximate size, in bytes, of the file.
+ Returns .The approximate size, in bytes.
+
+
+ Creates a new object that is a copy of the current instance.
+ Returns .A copy of the current instance.
+
+
+ Returns a string that represents the current object.
+ Returns .A string that represents the current object.
+
+
+ Determines whether a string is valid information.
+ Returns .true if is valid information; otherwise, false.
+ The string to validate.
+ The version of the string.
+
+
+ Represents the value of the Content-Range header.
+
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents an entity-tag header value.
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents the collection of Content Headers as defined in RFC 2616.
+
+
+ Gets the value of the Allow content header on an HTTP response.
+ Returns .The value of the Allow header on an HTTP response.
+
+
+ Returns .
+
+
+ Gets the value of the Content-Encoding content header on an HTTP response.
+ Returns .The value of the Content-Encoding content header on an HTTP response.
+
+
+ Gets the value of the Content-Language content header on an HTTP response.
+ Returns .The value of the Content-Language content header on an HTTP response.
+
+
+ Gets or sets the value of the Content-Length content header on an HTTP response.
+ Returns .The value of the Content-Length content header on an HTTP response.
+
+
+ Gets or sets the value of the Content-Location content header on an HTTP response.
+ Returns .The value of the Content-Location content header on an HTTP response.
+
+
+ Gets or sets the value of the Content-MD5 content header on an HTTP response.
+ Returns .The value of the Content-MD5 content header on an HTTP response.
+
+
+ Gets or sets the value of the Content-Range content header on an HTTP response.
+ Returns .The value of the Content-Range content header on an HTTP response.
+
+
+ Gets or sets the value of the Content-Type content header on an HTTP response.
+ Returns .The value of the Content-Type content header on an HTTP response.
+
+
+ Gets or sets the value of the Expires content header on an HTTP response.
+ Returns .The value of the Expires content header on an HTTP response.
+
+
+ Gets or sets the value of the Last-Modified content header on an HTTP response.
+ Returns .The value of the Last-Modified content header on an HTTP response.
+
+
+ A collection of headers and their values as defined in RFC 2616.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds the specified header and its values into the collection.
+ The header to add to the collection.
+ A list of header values to add to the collection.
+
+
+ Adds the specified header and its value into the collection.
+ The header to add to the collection.
+ The content of the header.
+
+
+ Adds the specified header and its values into the collection without validating the provided information.
+ The header to add to the collection.
+ The values of the header.
+
+
+ Adds the specified header and its the value into the collection without validating the provided information.
+ The header to add to the collection.
+ The content of the header.
+
+
+ Removes all headers from the collection.
+
+
+ Returns if a specific header exists in the collection.
+ Returns .true is the specified header exists in the collection; otherwise false.
+ The specific header.
+
+
+ Returns an enumerator that can iterate through the instance.
+ Returns .An enumerator for the .
+
+
+ Returns all header values for a specified header stored in the collection.
+ Returns .An array of header strings.
+ The specified header to return values for.
+
+
+ Removes the specified header from the collection.
+ Returns .
+ The name of the header to remove from the collection.
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Return if a specified header and specified values are stored in the collection.
+ Returns .true is the specified header and values are stored in the collection; otherwise false.
+ The specified header.
+ The specified header values.
+
+
+ Represents a collection of header values.
+
+
+
+
+
+ Returns .
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents the collection of Request Headers as defined in RFC 2616.
+
+
+ Gets the value of the Accept header for an HTTP request.
+ Returns .The value of the Accept header for an HTTP request.
+
+
+ Gets the value of the Accept-Charset header for an HTTP request.
+ Returns .The value of the Accept-Charset header for an HTTP request.
+
+
+ Gets the value of the Accept-Encoding header for an HTTP request.
+ Returns .The value of the Accept-Encoding header for an HTTP request.
+
+
+ Gets the value of the Accept-Language header for an HTTP request.
+ Returns .The value of the Accept-Language header for an HTTP request.
+
+
+ Gets or sets the value of the Authorization header for an HTTP request.
+ Returns .The value of the Authorization header for an HTTP request.
+
+
+ Gets or sets the value of the Cache-Control header for an HTTP request.
+ Returns .The value of the Cache-Control header for an HTTP request.
+
+
+ Gets the value of the Connection header for an HTTP request.
+ Returns .The value of the Connection header for an HTTP request.
+
+
+ Gets or sets a value that indicates if the Connection header for an HTTP request contains Close.
+ Returns .true if the Connection header contains Close, otherwise false.
+
+
+ Gets or sets the value of the Date header for an HTTP request.
+ Returns .The value of the Date header for an HTTP request.
+
+
+ Gets the value of the Expect header for an HTTP request.
+ Returns .The value of the Expect header for an HTTP request.
+
+
+ Gets or sets a value that indicates if the Expect header for an HTTP request contains Continue.
+ Returns .true if the Expect header contains Continue, otherwise false.
+
+
+ Gets or sets the value of the From header for an HTTP request.
+ Returns .The value of the From header for an HTTP request.
+
+
+ Gets or sets the value of the Host header for an HTTP request.
+ Returns .The value of the Host header for an HTTP request.
+
+
+ Gets the value of the If-Match header for an HTTP request.
+ Returns .The value of the If-Match header for an HTTP request.
+
+
+ Gets or sets the value of the If-Modified-Since header for an HTTP request.
+ Returns .The value of the If-Modified-Since header for an HTTP request.
+
+
+ Gets the value of the If-None-Match header for an HTTP request.
+ Returns .Gets the value of the If-None-Match header for an HTTP request.
+
+
+ Gets or sets the value of the If-Range header for an HTTP request.
+ Returns .The value of the If-Range header for an HTTP request.
+
+
+ Gets or sets the value of the If-Unmodified-Since header for an HTTP request.
+ Returns .The value of the If-Unmodified-Since header for an HTTP request.
+
+
+ Gets or sets the value of the Max-Forwards header for an HTTP request.
+ Returns .The value of the Max-Forwards header for an HTTP request.
+
+
+ Gets the value of the Pragma header for an HTTP request.
+ Returns .The value of the Pragma header for an HTTP request.
+
+
+ Gets or sets the value of the Proxy-Authorization header for an HTTP request.
+ Returns .The value of the Proxy-Authorization header for an HTTP request.
+
+
+ Gets or sets the value of the Range header for an HTTP request.
+ Returns .The value of the Range header for an HTTP request.
+
+
+ Gets or sets the value of the Referer header for an HTTP request.
+ Returns .The value of the Referer header for an HTTP request.
+
+
+ Gets the value of the TE header for an HTTP request.
+ Returns .The value of the TE header for an HTTP request.
+
+
+ Gets the value of the Trailer header for an HTTP request.
+ Returns .The value of the Trailer header for an HTTP request.
+
+
+ Gets the value of the Transfer-Encoding header for an HTTP request.
+ Returns .The value of the Transfer-Encoding header for an HTTP request.
+
+
+ Gets or sets a value that indicates if the Transfer-Encoding header for an HTTP request contains chunked.
+ Returns .true if the Transfer-Encoding header contains chunked, otherwise false.
+
+
+ Gets the value of the Upgrade header for an HTTP request.
+ Returns .The value of the Upgrade header for an HTTP request.
+
+
+ Gets the value of the User-Agent header for an HTTP request.
+ Returns .The value of the User-Agent header for an HTTP request.
+
+
+ Gets the value of the Via header for an HTTP request.
+ Returns .The value of the Via header for an HTTP request.
+
+
+ Gets the value of the Warning header for an HTTP request.
+ Returns .The value of the Warning header for an HTTP request.
+
+
+ Represents the collection of Response Headers as defined in RFC 2616.
+
+
+ Gets the value of the Accept-Ranges header for an HTTP response.
+ Returns .The value of the Accept-Ranges header for an HTTP response.
+
+
+ Gets or sets the value of the Age header for an HTTP response.
+ Returns .The value of the Age header for an HTTP response.
+
+
+ Gets or sets the value of the Cache-Control header for an HTTP response.
+ Returns .The value of the Cache-Control header for an HTTP response.
+
+
+ Gets the value of the Connection header for an HTTP response.
+ Returns .The value of the Connection header for an HTTP response.
+
+
+ Gets or sets a value that indicates if the Connection header for an HTTP response contains Close.
+ Returns .true if the Connection header contains Close, otherwise false.
+
+
+ Gets or sets the value of the Date header for an HTTP response.
+ Returns .The value of the Date header for an HTTP response.
+
+
+ Gets or sets the value of the ETag header for an HTTP response.
+ Returns .The value of the ETag header for an HTTP response.
+
+
+ Gets or sets the value of the Location header for an HTTP response.
+ Returns .The value of the Location header for an HTTP response.
+
+
+ Gets the value of the Pragma header for an HTTP response.
+ Returns .The value of the Pragma header for an HTTP response.
+
+
+ Gets the value of the Proxy-Authenticate header for an HTTP response.
+ Returns .The value of the Proxy-Authenticate header for an HTTP response.
+
+
+ Gets or sets the value of the Retry-After header for an HTTP response.
+ Returns .The value of the Retry-After header for an HTTP response.
+
+
+ Gets the value of the Server header for an HTTP response.
+ Returns .The value of the Server header for an HTTP response.
+
+
+ Gets the value of the Trailer header for an HTTP response.
+ Returns .The value of the Trailer header for an HTTP response.
+
+
+ Gets the value of the Transfer-Encoding header for an HTTP response.
+ Returns .The value of the Transfer-Encoding header for an HTTP response.
+
+
+ Gets or sets a value that indicates if the Transfer-Encoding header for an HTTP response contains chunked.
+ Returns .true if the Transfer-Encoding header contains chunked, otherwise false.
+
+
+ Gets the value of the Upgrade header for an HTTP response.
+ Returns .The value of the Upgrade header for an HTTP response.
+
+
+ Gets the value of the Vary header for an HTTP response.
+ Returns .The value of the Vary header for an HTTP response.
+
+
+ Gets the value of the Via header for an HTTP response.
+ Returns .The value of the Via header for an HTTP response.
+
+
+ Gets the value of the Warning header for an HTTP response.
+ Returns .The value of the Warning header for an HTTP response.
+
+
+ Gets the value of the WWW-Authenticate header for an HTTP response.
+ Returns .The value of the WWW-Authenticate header for an HTTP response.
+
+
+ Represents a media-type as defined in the RFC 2616.
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents a content-type header value with an additional quality.
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents a name/value pair.
+
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents a name/value pair with parameters.
+
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents a product header value.
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents a value which can either be a product or a comment.
+
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents a header value which can either be a date/time or an entity-tag value.
+
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents the value of the Range header.
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents a byte-range header value.
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents a header value which can either be a date/time or a timespan value.
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents a string header value with an optional quality.
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents a transfer-coding header value.
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents a transfer-coding header value with optional quality.
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents the value of a Via header.
+
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Represents a warning value used by the Warning header.
+
+
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+ Returns .
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.Http.Formatting.4.0.20126.16343/System.Net.Http.Formatting.4.0.20126.16343.nupkg b/packages/System.Net.Http.Formatting.4.0.20126.16343/System.Net.Http.Formatting.4.0.20126.16343.nupkg
new file mode 100644
index 0000000..f7cda09
Binary files /dev/null and b/packages/System.Net.Http.Formatting.4.0.20126.16343/System.Net.Http.Formatting.4.0.20126.16343.nupkg differ
diff --git a/packages/System.Net.Http.Formatting.4.0.20126.16343/lib/net40/System.Net.Http.Formatting.dll b/packages/System.Net.Http.Formatting.4.0.20126.16343/lib/net40/System.Net.Http.Formatting.dll
new file mode 100644
index 0000000..fda43a6
Binary files /dev/null and b/packages/System.Net.Http.Formatting.4.0.20126.16343/lib/net40/System.Net.Http.Formatting.dll differ
diff --git a/packages/System.Net.Http.Formatting.4.0.20126.16343/lib/net40/System.Net.Http.Formatting.xml b/packages/System.Net.Http.Formatting.4.0.20126.16343/lib/net40/System.Net.Http.Formatting.xml
new file mode 100644
index 0000000..da5ec41
--- /dev/null
+++ b/packages/System.Net.Http.Formatting.4.0.20126.16343/lib/net40/System.Net.Http.Formatting.xml
@@ -0,0 +1,1121 @@
+
+
+
+ System.Net.Http.Formatting
+
+
+
+ Extension methods to provide convenience methods for finding items within a <see cref="T:System.Collections.Generic.IEnumerable`1" /> collection.
+
+
+ Returns all instances of in a sequence that has a header field with a property equal to the provided contentType.
+ null if source is empty or if no element matches; otherwise the first in the sequence with a matching media type.
+ The content to evaluate
+ The media type to look for.
+
+
+ Returns all instances of in a sequence that has a header field with a property equal to the provided contentType.
+ null if source is empty or if no element matches; otherwise the first in the sequence with a matching media type.
+ The content to evaluate
+ The media type to look for.
+
+
+ Returns the first in a sequence that has a header field with a property equal to dispositionName.
+ The first in the sequence with a matching disposition name.
+ The contents to evaluate
+ The disposition name to look for.
+
+
+ Returns the first in a sequence that has a header field with a property equal to dispositionName.
+ null if source is empty or if no element matches; otherwise the first in the sequence with a matching disposition name.
+ The contents to evaluate
+ The disposition name to look for.
+
+
+ Returns the first in a sequence that has a header field with a property equal to dispositionType.
+ The first in the sequence with a matching disposition type.
+ The contents to evaluate
+ The disposition type to look for.
+
+
+ Returns the first in a sequence that has a header field with a property equal to dispositionType.
+ null if source is empty or if no element matches; otherwise the first in the sequence with a matching disposition type.
+ The contents to evaluate
+ The disposition type to look for.
+
+
+ Returns the start multipart body part. The start is used to identify the main body in multipart/related content (see RFC 2387).
+ The first in the sequence with a matching value.
+ The contents to evaluate.
+ The start value to look for. A match is found if a has a Content-ID header field with the given value.
+
+
+ Returns the first in a sequence that has a header field parameter equal to start. This parameter is typically used in connection with multipart/related content (see RFC 2387).
+ null if source is empty or if no element matches; otherwise the first in the sequence with a matching value.
+ The contents to evaluate.
+ The start value to look for. A match is found if a has a Content-ID header field with the given value.
+
+
+ Extension methods to allow strongly typed objects to be read from instances.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension methods to read and entities from instances.
+
+
+ Determines whether the specified content is HTTP request message content.
+ true if the specified content is HTTP message content; otherwise, false.
+ The content.
+
+
+ Determines whether the specified content is HTTP response message content.
+ true if the specified content is HTTP message content; otherwise, false.
+ The content.
+
+
+
+
+
+
+
+ Extension methods to read MIME multipart entities from instances.
+
+
+ Determines whether the specified content is MIME multipart content.
+ true if the specified content is MIME multipart content; otherwise, false.
+ The content.
+
+
+ Determines whether the specified content is MIME multipart content with the specified subtype. For example, the subtype mixed would match content with a content type of multipart/mixed.
+ true if the specified content is MIME multipart content with the specified subtype; otherwise, false.
+ The content.
+ The MIME multipart subtype to match.
+
+
+
+
+
+ Derived class which can encapsulate an or an as an entity with media type "application/http".
+
+
+ Initializes a new instance of the class encapsulating an .
+ The instance to encapsulate.
+
+
+ Initializes a new instance of the class encapsulating an .
+ The instance to encapsulate.
+
+
+ Releases unmanaged and - optionally - managed resources
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+ Gets the HTTP request message.
+
+
+ Gets the HTTP response message.
+
+
+ Asynchronously serializes the object's content to the given stream.
+ A instance that is asynchronously serializing the object's content.
+ The to which to write.
+ The associated .
+
+
+ Computes the length of the stream if possible.
+ true if the length has been computed; otherwise false.
+ The computed length of the stream.
+
+
+ Derived class that contains a strongly typed object as its content.
+ The type of object it contains as its content.
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpRequestMessage`1" /> class.
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpRequestMessage`1" /> class.
+ The object to use as the content of this new instance.
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpRequestMessage`1" /> class.
+ The object to use as the content of this new instance.
+ The collection of instances to use for serialization.
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpRequestMessage`1" /> class.
+ The object to use as the content of this new instance.
+ The media type to use to write the request.
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpRequestMessage`1" /> class.
+ The object to use as the content of this new instance.
+ The media type to use to write the request.
+ The collection of instances to use for serialization.
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpRequestMessage`1" /> class.
+ The object to use as the content of this new instance.
+ The media type to use to write the request.
+ The collection of instances to use for serialization.
+ The to use to select the .
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpRequestMessage`1" /> class.
+ The object to use as the content of this new instance.
+ The for this request.
+ The to use for this request.
+ The collection of instances to use for serialization.
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpRequestMessage`1" /> class.
+ The object to use as the content of this new instance.
+ The media type to use to write the request.
+
+
+ Gets or sets the that manages the object value for this .
+
+
+ Extension methods for .
+
+
+ Creates a new instance associated with the given .
+ The existing
+ The type of the value.
+ The value for the new
+
+
+ Creates a new instance associated with the given .
+ The .
+ The type of the value.
+ The value for the new
+ The collection of instances to use.
+ The to select the
+
+
+ Creates a new instance associated with the given .
+ The .
+ The type of the value.
+ The value for the new
+ The to set as the request media type.
+ The collection of instances to use.
+ The to select the
+
+
+ Creates a new instance associated with the given .
+ The existing
+ The value for the new
+ The type of value for the new .
+
+
+ Creates a new instance associated with the given .
+ The .
+ The value for the new
+ The collection of instances to use.
+ The to select the
+ The type of the value.
+
+
+ Creates a new instance associated with the given .
+ The .
+ The value for the new
+ The to set as the request media type.
+ The collection of instances to use.
+ The to select the
+ The type of the value.
+
+
+ Derived class that contains a strongly typed object as its content.
+ The type of object instances of this class will contain as its content.
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpResponseMessage`1" /> class.
+ The to use for this response.
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpResponseMessage`1" /> class.
+ The value to use as the content of this new instance.
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpResponseMessage`1" /> class.
+ The value to use as the content of this new instance.
+ The collection of instances to use for serialization.
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpResponseMessage`1" /> class.
+ The value to use as the content of this new instance.
+ The to use to select the appropriate .
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpResponseMessage`1" /> class.
+ The value to use as the content of this new instance.
+ The to use to serialize the response.
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpResponseMessage`1" /> class.
+ The value to use as the content of this new instance.
+ The original .
+ The collection of instances to use for serialization.
+ The to use to select the appropriate .
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpResponseMessage`1" /> class.
+ The value to use as the content of this new instance.
+ The original .
+ The media type to use.
+ The collection of instances to use for serialization.
+ The to use to select the appropriate .
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpResponseMessage`1" /> class.
+ The value to use as the content of this new instance.
+ The to use for this response.
+
+
+ Initializes a new instance of the <see cref="T:System.Net.Http.HttpResponseMessage`1" /> class.
+ The value to use as the content of this new instance.
+ The to use for this response.
+ The collection of instances to use for serialization.
+
+
+ Gets or sets the that manages the value for this instance.
+
+
+
+ Creates a new instance associated with the given .
+ The existing
+ The type of the value.
+ The value for the new
+
+
+ Creates a new instance associated with the given .
+ The .
+ The type of the value.
+ The value for the new
+ The collection of instances to use.
+ The to select the
+
+
+ Creates a new instance associated with the given .
+ The .
+ The type of the value.
+ The value for the new
+ The to set as the response media type.
+ The collection of instances to use.
+ The to select the
+
+
+ Creates a new instance associated with the given .
+ The existing
+ The value for the new
+ The type of value for the new .
+
+
+ Creates a new instance associated with the given .
+ The .
+ The value for the new
+ The collection of instances to use.
+ The to select the
+ The type of the value.
+
+
+ Creates a new instance associated with the given .
+ The .
+ The value for the new
+ The to set as the response media type.
+ The collection of instances to use.
+ The to select the
+ The type of the value.
+
+
+ An implementation examines the headers provided by the MIME multipart parser as part of the MIME multipart extension methods (see ) and decides what kind of stream to return for the body part to be written to.
+
+
+ When a MIME multipart body part has been parsed this method is called to get a stream for where to write the body part to.
+ The instance where the message body part is written to.
+ Header fields describing the body part.
+
+
+ An suited for writing each MIME body parts of the MIME multipart message to a file using a .
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The root path where the content of MIME multipart body parts are written to.
+
+
+ Initializes a new instance of the class.
+ The root path where the content of MIME multipart body parts are written to.
+ The number of bytes buffered for writes to the file.
+
+
+ Gets an <see cref="T:System.Collections.Generic.IEnumerable`1" /> containing the files names of MIME body part written to file.
+
+
+ Gets the name of the local file which will be combined with the root path to create an absolute file name where the contents of the current MIME body part will be stored.
+ A relative filename with no path component.
+ The headers for the current MIME body part.
+
+
+ This body part stream provider examines the headers provided by the MIME multipart parser and decides which to write the body part to.
+ The instance where the message body part is written to.
+ Header fields describing the body part
+
+
+ Override this method in a derived class to examine the headers provided by the MIME multipart parser and decides which to write the body part to.
+ The instance where the message body part is written to.
+ Header fields describing the body part
+
+
+ An suited for use with HTML file uploads for writing file content to a . The stream provider looks at the <b>Content-Disposition</b> header field and determines an output based on the presence of a <b>filename</b> parameter. If a <b>filename</b> parameter is present in the <b>Content-Disposition</b> header field then the body part is written to a , otherwise it is written to a . This makes it convenient to process MIME Multipart HTML Form data which is a combination of form data and file content.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The root path where the content of MIME multipart body parts are written to.
+
+
+ Initializes a new instance of the class.
+ The root path where the content of MIME multipart body parts are written to.
+ The number of bytes buffered for writes to the file.
+
+
+ Gets an <see cref="T:System.Collections.Generic.IDictionary`2" /> instance containing mappings of each <b>filename</b> parameter provided in a <b>Content-Disposition</b> header field (represented as the keys) to a local file name where the contents of the body part is stored (represented as the values).
+
+
+ Gets the name of the local file which will be combined with the root path to create an absolute file name where the contents of the current MIME body part will be stored.
+ A relative filename with no path component.
+ The headers for the current MIME body part.
+
+
+ This body part stream provider examines the headers provided by the MIME multipart parser and decides whether it should return a file stream or a memory stream for the body part to be written to.
+ The instance where the message body part is written to.
+ Header fields describing the body part
+
+
+ Override this method in a derived class to examine the headers provided by the MIME multipart parser and decide whether it should return a file stream or a memory stream for the body part to be written to.
+ The instance where the message body part is written to.
+ Header fields describing the body part
+
+
+ Derived class that contains a strongly typed object.
+
+
+ Asynchronously creates the content read stream.
+ A instance that will yield a stream intended for reading.
+
+
+ Gets or sets the default formatter.
+ The default formatter.
+
+
+ Gets or sets the formatter context.
+ The formatter context.
+
+
+ Gets the mutable collection of instances used to serialize or deserialize the value of this .
+
+
+ Gets or sets the formatter selector.
+ The formatter selector.
+
+
+ Gets or sets the inner wrapped by by the current .
+
+
+ Gets the type of object managed by this instance.
+
+
+ Asynchronously returns the object instance for this .
+ A instance that will yield the object instance.
+
+
+
+
+
+ Asynchronously returns the object instance for this or the default value for the type if content is not available.
+ A instance that will yield the object instance.
+
+
+ Selects the appropriate to read the object content.
+ The selected or null.
+
+
+ Selects the appropriate to write the object content.
+ The selected or null.
+ The to use to describe the object's content type.
+
+
+ Asynchronously serializes the object's content to the given stream.
+ A instance that is asynchronously serializing the object's content.
+ The to which to write.
+ The associated .
+
+
+ Sets the value of the without any type checking.
+ The value to set to
+
+
+ Computes the length of the stream if possible.
+ true if the length has been computed; otherwise false.
+ The computed length of the stream.
+
+
+ Gets a value indicating whether the formatter collection was set explicitly.
+ truefalse
+
+
+ Gets a value indicating whether formatter context was set explicitly.
+ truefalse
+
+
+ Gets a value indicating whether the formatter selector was set explicitly.
+ truefalse
+
+
+ Gets and sets value indicating whether the media type was set explicitly.
+ truefalse
+
+
+ Gets or sets the write formatter.
+ The write formatter.
+
+
+ Generic form of .
+ The type of object this class will contain.
+
+
+ Returns a instance to yield the object instance for this .
+ A that will yield the object instance.
+
+
+ Returns a instance to yield the object instance for this or the default value for the type if content is not available.
+ A that will yield the object instance.
+
+
+ Extension methods to allow strongly typed objects to be read from the query component of instances.
+
+
+ Parses the query portion of the specified .
+ A containing the parsed result.
+ The instance from which to read.
+
+
+ Reads HTML form URL encoded data provided in the query component as an of the given type.
+ true if the query component can be read as the specified type; otherwise false.
+ The instance from which to read.
+ The type of the object to read.
+ An object to be initialized with this instance or null if the conversion cannot be performed.
+
+
+ Reads HTML form URL encoded data provided in the query component as an of type <typeparamref name="T" />.
+ true if the query component can be read as the specified type; otherwise false.
+ The instance from which to read.
+ An object to be initialized with this instance or null if the conversion cannot be performed.
+ The type of the object to read.
+
+
+ Reads HTML form URL encoded data provided in the query component as a object.
+ true if the query component can be read as ; otherwise false.
+ The instance from which to read.
+ An object to be initialized with this instance or null if the conversion cannot be performed.
+
+
+ Helper class to allow a synchronous formatter on top of the async formatter infrastructure. This does not guarantee non-blocking threads. The only way to guarantee that we don't block a thread on IO is: a) use the async form, or b) fully buffer the entire write operation. The user opted out of the async form, meaning they can tolerate potential thread blockages. This class just tries to do smart buffering to minimize that blockage. It also gives us a place to do future optimizations on synchronous usage.
+
+
+ Initializes a new instance of the class.
+
+
+ Suggested size of buffer to use with streams, in bytes.
+
+
+
+
+
+
+ Helper class to serialize <see cref="T:System.Collections.Generic.IEnumerable`1" /> types by delegating them through a concrete implementation."/>.
+ The interface implementing to proxy.
+
+
+ Initialize a DelegatingEnumerable. This constructor is necessary for to work.
+
+
+ Initialize a DelegatingEnumerable with an <see cref="T:System.Collections.Generic.IEnumerable`1" />. This is a helper class to proxy <see cref="T:System.Collections.Generic.IEnumerable`1" /> interfaces for .
+ The <see cref="T:System.Collections.Generic.IEnumerable`1" /> instance to get the enumerator from.
+
+
+ This method is not implemented but is required method for serialization to work. Do not use.
+ The item to add. Unused.
+
+
+ Get the enumerator of the associated <see cref="T:System.Collections.Generic.IEnumerable`1" />.
+ The enumerator of the <see cref="T:System.Collections.Generic.IEnumerable`1" /> source.
+
+
+ Get the enumerator of the associated <see cref="T:System.Collections.Generic.IEnumerable`1" />.
+ The enumerator of the <see cref="T:System.Collections.Generic.IEnumerable`1" /> source.
+
+
+ The context used to identify the or that needs to be either read or written.
+
+
+ Instantiates a new instance of a .
+ The to use in the absence of a request or response.
+ Indicates if this is context is meant to select a formatter to read or to write.
+
+
+ Instantiates a new instance of the class to use to serialize or deserialize a request.
+ The to serialize or deserialize.
+ Indicates if this is context is meant to select a formatter to read or to write.
+
+
+ Instantiates a new instance of the class to use to serialize or deserialize a response.
+ The to serialize or deserialize.
+ Indicates if this is context is meant to select a formatter to read or to write.
+
+
+ Gets the HTTP Content-Type of the request or response associated with the context.
+
+
+ Gets a value indicating whether the context will be used to select for formatter for reading or writing the content
+
+
+ Gets the associated with the context.
+
+
+ Gets the associated with the context or null if there is no associated response message.
+
+
+ Class that selects a for an or .
+
+
+ Initializes a new instance of the class.
+
+
+ Called to select a formatter for deserializing an instance of a given type.
+ The chosen for deserialization or null if their is no appropriate formatter.>
+ The type to be deserialized.
+ The context related to the deserialization of the instance.
+ The set of objects from which to choose.
+
+
+ Called to select a formatter for serializing an instance of a given type.
+ The chosen for serialization or null if their is no appropriate formatter.
+ The type to be serialized.
+ The context related to the serialization of the instance.
+ The set of objects from which to choose.
+ The media type that is associated with the formatter chosen for serialization.
+
+
+ Selects a formatter for deserializing an instance of a given type.
+ The chosen for deserialization or null if their is no appropriate formatter.>
+ The type to be deserialized.
+ The context related to the deserialization of the instance.
+ The set of objects from which to choose.
+
+
+ Selects a formatter for serializing an instance of a given type.
+ The chosen for serialization or null if their is no appropriate formatter.
+ The type to be serialized.
+ The context related to the serialization of the instance.
+ The set of objects from which to choose.
+ The media type that is associated with the formatter chosen for serialization.
+
+
+
+ class for handling HTML form URL-ended data, also known as application/x-www-form-urlencoded.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether this can read objects of the specified type.
+ true if objects of this type can be read, otherwise false.
+ The type of object that will be read.
+
+
+ Determines whether this can write objects of the specified type.
+ true if objects of this type can be written, otherwise false.
+ The type of object that will be written.
+
+
+ Gets the default media type for HTML Form URL encoded data, namely application/x-www-form-urlencoded.
+
+
+
+
+
+
+ Called during serialization to write an object of the specified type to the specified stream.
+ A that will write the value to the stream.
+ The type of object to write.
+ The object to write.
+ The to which to write.
+ The for the content being read.
+ The containing the respective request or response.
+ The .
+
+
+ Gets or sets the size of the buffer when reading the incoming stream.
+ The size of the read buffer.
+
+
+ Interface to select a for an or .
+
+
+ Selects a formatter for deserializing an instance of a given type.
+ The chosen for deserialization or null if their is no appropriate formatter.>
+ The type to be deserialized.
+ The context related to the deserialization of the instance.
+ The set of objects from which to choose.
+
+
+ Selects a formatter for serializing an instance of a given type.
+ The chosen for serialization or null if their is no appropriate formatter.
+ The type to be serialized.
+ The context related to the serialization of the instance.
+ The set of objects from which to choose.
+ The media type that is associated with the formatter chosen for serialization.
+
+
+ Interface to provide a key/value model of an object graph.
+
+
+ Gets all the keys for all the values.
+
+
+ Attempts to retrieve the value associated with the given key.
+ If there was a value associated with that key
+ The key of the value to retrieve.
+ The value associated with that key.
+
+
+
+ class to handle Json.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a flag indicating whether this formatter uses a serialization surrogate to allow data contracts marked with set to true to be serialized.
+ truefalse
+
+
+ Determines whether this can read objects of the specified type.
+ true if objects of this type can be read, otherwise false.
+ The type of object that will be read.
+
+
+ Determines whether this can write objects of the specified type.
+ true if objects of this type can be written, otherwise false.
+ The type of object that will be written.
+
+
+ Gets or sets the to use when writing data.
+
+
+
+
+
+ Creates the default serializer used to serialize objects of the specified type.
+ A that can serialize instances of the specified type.
+ The type of object to create a serializer for.
+ A <see cref="T:System.Collections.Generic.IEnumerable`1" /> of Type that contains the known types that may be present in the object graph.
+ true to create a serializer that can handle reference data contracts, otherwise false.
+
+
+ Gets the default media type for Json, namely "application/json".
+
+
+
+
+
+
+ Called during serialization to write an object of the specified type to the specified stream.
+ A that will write the value to the stream.
+ The type of object to write.
+ The object to write.
+ The to which to write.
+ The for the content being written.
+ The containing the respective request or response.
+ The .
+
+
+ Unregisters the serializer currently associated with the given type.
+ true if a serializer was registered for the type; otherwise false.
+ The type of object whose serializer should be removed.
+
+
+ Registers the to use to read or write the specified <typeparamref name="T" /> type.
+ The instance to use.
+ The type of object that will be serialized or deserialized with the serializer.
+
+
+ Registers the to use to read or write the specified type.
+ The type of object that will be serialized or deserialized with the serializer.
+ The instance to use.
+
+
+ Class that provides s for a request or response from a media range.
+
+
+ Initializes a new instance of the class.
+ The that provides a description of the media range.
+ The to return on a match.
+
+
+ Initializes a new instance of the class.
+ The description of the media range.
+ The media type to return on a match.
+
+
+ Gets the describing the known media range.
+
+
+ Base class to handle serializing and deserializing strongly-typed objects using .
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether this can deserialize an object of the specified type.
+ true if this can deserialize an object of that type; otherwise false.
+ The type of object that will be deserialized.
+
+
+ Determines whether this can serialize an object of the specified type.
+ true if this can serialize an object of that type; otherwise false.
+ The type of object that will be serialized.
+
+
+ Gets or sets the to use when reading and writing data.
+
+
+
+
+
+ Gets the mutable collection of elements used by this instance to determine the of requests or responses.
+
+
+ Called from <see cref="M:System.Net.Http.Formatting.MediaTypeFormatter.GetResponseHeaders(System.Type,System.String,System.Net.Http.HttpResponseMessage)" /> to retrieve the response headers.
+ The collection of response header key value pairs.
+ The type of the object. See .
+ The media type.
+ The .
+
+
+
+ Called to write an object to the stream asynchronously.
+ A that will write the object to the stream asynchronously.
+ The type of object to write.
+ The object instance to write.
+ The to which to write.
+ The for the content being written.
+ The containing the respective request or response.
+ The .
+
+
+
+ Gets or sets {insert text here}.
+
+
+ Gets the mutable collection of elements supported by this instance.
+
+
+ Returns a that serializes the given value of the given type to the given stream.
+ A that will perform the write.
+ The type of the object to write.
+ The object value to write. It may be null.
+ The to which to write.
+ The if available. It may be null.
+ The containing the
+ The if available. It may be null.
+
+
+ Collection class that contains instances.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ A collection of instances to place in the collection.
+
+
+ Gets the to use for application/x-www-form-urlencoded data.
+
+
+ Gets the to use for Json.
+
+
+ Gets the to use for Xml.
+
+
+ Extensions for adding items to a .
+
+
+ Updates the given formatter's set of elements so that it associates the mediaType with requests or responses containing mediaRange in the content headers.
+ The to receive the new item.
+ The media range that will appear in the content headers.
+ The media type to associate with that mediaRange.
+
+
+ Updates the given formatter's set of elements so that it associates the mediaType with requests or responses containing mediaRange in the content headers.
+ The to receive the new item.
+ The media range that will appear in the content headers.
+ The media type to associate with that mediaRange.
+
+
+ Updates the given formatter's set of elements so that it associates the mediaType with s containing a specific query parameter and value.
+ The to receive the new item.
+ The name of the query parameter.
+ The value assigned to that query parameter.
+ The to associate with a containing a query string matching queryStringParameterName and queryStringParameterValue.
+
+
+ Updates the given formatter's set of elements so that it associates the mediaType with s containing a specific query parameter and value.
+ The to receive the new item.
+ The name of the query parameter.
+ The value assigned to that query parameter.
+ The media type to associate with a containing a query string matching queryStringParameterName and queryStringParameterValue.
+
+
+ Updates the given formatter's set of elements so that it associates the mediaType with a specific HTTP request header field with a specific value.
+ The to receive the new item.
+ Name of the header to match.
+ The header value to match.
+ The to use when matching headerValue.
+ if set to true then headerValue is considered a match if it matches a substring of the actual header value.
+ The to associate with a entry with a name matching headerName and a value matching headerValue.
+
+
+ Updates the given formatter's set of elements so that it associates the mediaType with a specific HTTP request header field with a specific value.
+ The to receive the new item.
+ Name of the header to match.
+ The header value to match.
+ The to use when matching headerValue.
+ if set to true then headerValue is considered a match if it matches a substring of the actual header value.
+ The media type to associate with a entry with a name matching headerName and a value matching headerValue.
+
+
+ Updates the given formatter's set of elements so that it associates the mediaType with s ending with the given uriPathExtension.
+ The to receive the new item.
+ The string of the path extension.
+ The to associate with s ending with uriPathExtension.
+
+
+ Updates the given formatter's set of elements so that it associates the mediaType with s ending with the given uriPathExtension.
+ The to receive the new item.
+ The string of the path extension.
+ The string media type to associate with s ending with uriPathExtension.
+
+
+ An abstract base class used to create an association between or instances that have certain characteristics and a specific .
+
+
+ Initializes a new instance of a with the given mediaType value.
+ The that is associated with or instances that have the given characteristics of the .
+
+
+ Initializes a new instance of a with the given mediaType value.
+ The that is associated with or instances that have the given characteristics of the .
+
+
+ Gets the that is associated with or instances that have the given characteristics of the .
+
+
+ Implemented in a derived class to determine if the should be associated with the of the .
+ The quality of the match. It must be between 0.0 and 1.0. A value of 0.0 signifies no match. A value of 1.0 signifies a complete match.
+ The to evaluate for the characteristics associated with the of the .
+
+
+ Implemented in a derived class to determine if the should be associated with the of the .
+ The quality of the match. It must be between 0.0 and 1.0. A value of 0.0 signifies no match. A value of 1.0 signifies a complete match.
+ The to evaluate for the characteristics associated with the of the .
+
+
+ Returns the quality of the match of the associated with request.
+ The quality of the match. It must be between 0.0 and 1.0. A value of 0.0 signifies no match. A value of 1.0 signifies a complete match.
+ The to evaluate for the characteristics associated with the of the .
+
+
+ Returns the quality of the match of the associated with response.
+ The quality of the match. It must be between 0.0 and 1.0. A value of 0.0 signifies no match. A value of 1.0 signifies a complete match.
+ The to evaluate for the characteristics associated with the of the .
+
+
+ Class that provides s from query strings.
+
+
+ Initializes a new instance of the class.
+ The name of the query string parameter to match, if present.
+ The value of the query string parameter specified by queryStringParameterName.
+ The to use if the query parameter specified by queryStringParameterName is present and assigned the value specified by queryStringParameterValue.
+
+
+ Initializes a new instance of the class.
+ The name of the query string parameter to match, if present.
+ The value of the query string parameter specified by queryStringParameterName.
+ The media type to use if the query parameter specified by queryStringParameterName is present and assigned the value specified by queryStringParameterValue.
+
+
+ Gets the query string parameter name.
+
+
+ Gets the query string parameter value.
+
+
+ This class provides a mapping from an arbitrary HTTP request header field to a used to select instances for handling the entity body of an or . <remarks>This class only checks header fields associated with for a match. It does not check header fields associated with or instances.</remarks>
+
+
+ Initializes a new instance of the class.
+ Name of the header to match.
+ The header value to match.
+ The to use when matching headerValue.
+ if set to true then headerValue is considered a match if it matches a substring of the actual header value.
+ The to use if headerName and headerValue is considered a match.
+
+
+ Initializes a new instance of the class.
+ Name of the header to match.
+ The header value to match.
+ The value comparison to use when matching headerValue.
+ if set to true then headerValue is considered a match if it matches a substring of the actual header value.
+ The media type to use if headerName and headerValue is considered a match.
+
+
+ Gets the name of the header to match.
+
+
+ Gets the header value to match.
+
+
+ Gets the to use when matching .
+
+
+ Gets a value indicating whether is a matched as a substring of the actual header value. this instance is value substring.
+ truefalse
+
+
+ Returns a value indicating whether the current instance can return a from request.
+ The quality of the match. It must be between 0.0 and 1.0. A value of 0.0 signifies no match. A value of 1.0 signifies a complete match.
+ The to check.
+
+
+ Returns a value indicating whether the current instance can return a from response.
+ The quality of the match. It must be between 0.0 and 1.0. A value of 0.0 signifies no match. A value of 1.0 signifies a complete match.
+ The to check.
+
+
+ Class that provides s from path extensions appearing in a .
+
+
+ Initializes a new instance of the class.
+ The extension corresponding to mediaType. This value should not include a dot or wildcards.
+ The that will be returned if uriPathExtension is matched.
+
+
+ Initializes a new instance of the class.
+ The extension corresponding to mediaType. This value should not include a dot or wildcards.
+ The media type that will be returned if uriPathExtension is matched.
+
+
+ Gets the path extension.
+
+
+
+ class to handle Xml.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether this can read objects of the specified type.
+ true if objects of this type can be read, otherwise false.
+ The type of object that will be read.
+
+
+ Determines whether this can write objects of the specified type.
+ true if objects of this type can be written, otherwise false.
+ The type of object that will be written.
+
+
+ Gets or sets the to use when writing data.
+
+
+
+
+
+ Gets the default media type for xml, namely "application/xml".
+ <remarks> The default media type does not have any charset parameter as the can be configured on a per instance basis. </remarks>
+
+
+
+ Called during serialization to write an object of the specified type to the specified stream.
+ A that will write the value to the stream.
+ The type of object to write.
+ The object to write.
+ The to which to write.
+ The for the content being written.
+ The containing the respective request or response.
+ The .
+
+
+ Unregisters the serializer currently associated with the given type.
+ true if a serializer was registered for the type; otherwise false.
+ The type of object whose serializer should be removed.
+
+
+ Registers the to use to read or write the specified <typeparamref name="T" /> type.
+ The instance to use.
+ The type of object that will be serialized or deserialized with serializer.
+
+
+ Registers the to use to read or write the specified type.
+ The type of object that will be serialized or deserialized with serializer.
+ The instance to use.
+
+
+ Registers the to use to read or write the specified type.
+ The type of objects for which serializer will be used.
+ The instance to use.
+
+
+ Registers the to use to read or write the specified <typeparamref name="T" /> type.
+ The instance to use.
+ The type of object that will be serialized or deserialized with serializer.
+
+
+ Gets or sets a value indicating whether to use by default.
+ truefalsefalse
+
+
+
\ No newline at end of file
diff --git a/packages/System.Web.Http.Common.4.0.20126.16343/System.Web.Http.Common.4.0.20126.16343.nupkg b/packages/System.Web.Http.Common.4.0.20126.16343/System.Web.Http.Common.4.0.20126.16343.nupkg
new file mode 100644
index 0000000..d75eba1
Binary files /dev/null and b/packages/System.Web.Http.Common.4.0.20126.16343/System.Web.Http.Common.4.0.20126.16343.nupkg differ
diff --git a/packages/System.Web.Http.Common.4.0.20126.16343/lib/net40/System.Web.Http.Common.dll b/packages/System.Web.Http.Common.4.0.20126.16343/lib/net40/System.Web.Http.Common.dll
new file mode 100644
index 0000000..ca66806
Binary files /dev/null and b/packages/System.Web.Http.Common.4.0.20126.16343/lib/net40/System.Web.Http.Common.dll differ
diff --git a/packages/System.Web.Http.Common.4.0.20126.16343/lib/net40/System.Web.Http.Common.xml b/packages/System.Web.Http.Common.4.0.20126.16343/lib/net40/System.Web.Http.Common.xml
new file mode 100644
index 0000000..977cd33
--- /dev/null
+++ b/packages/System.Web.Http.Common.4.0.20126.16343/lib/net40/System.Web.Http.Common.xml
@@ -0,0 +1,229 @@
+
+
+
+ System.Web.Http.Common
+
+
+
+ Provides extension methods for the class.
+
+
+ Creates an wired up to the associated .
+ An initialized .
+ The HTTP request.
+
+
+ Creates an wired up to the associated .
+ An initialized .
+ The HTTP request.
+ The HTTP status code.
+
+
+ The class can be used to indicate properties about a route parameter (the literals and placeholders located within segments of a ). It can for example be used to indicate that a route parameter is optional.
+
+
+ Optional Parameter
+
+
+ Returns a that represents this instance.
+ A that represents this instance.
+
+
+ Utility class for creating, logging and unwrapping instances.
+
+
+ Creates an with the provided properties and logs it with .
+ The logged .
+ A composite format string explaining the reason for the exception.
+ An object array that contains zero or more objects to format.
+
+
+ Creates an with the provided properties and logs it with .
+ The logged .
+ The name of the parameter that caused the current exception.
+ A composite format string explaining the reason for the exception.
+ An object array that contains zero or more objects to format.
+
+
+ Creates an with the provided properties and logs it with .
+ The logged .
+ The name of the parameter that caused the current exception.
+
+
+ Creates an with the provided properties and logs it with .
+ The logged .
+ The name of the parameter that caused the current exception.
+ A composite format string explaining the reason for the exception.
+ An object array that contains zero or more objects to format.
+
+
+ Creates an with a default message and logs it with .
+ The logged .
+ The name of the parameter that caused the current exception.
+
+
+ Creates an with the provided properties and logs it with .
+ The logged .
+ The name of the parameter that caused the current exception.
+ The value of the argument that causes this exception.
+ A composite format string explaining the reason for the exception.
+ An object array that contains zero or more objects to format.
+
+
+ Creates an with a message saying that the argument must be less than or equal to maxValue and logs it with .
+ The logged .
+ The name of the parameter that caused the current exception.
+ The value of the argument that causes this exception.
+ The maximum size of the argument.
+
+
+ Creates an with a message saying that the argument must be greater than or equal to minValue and logs it with .
+ The logged .
+ The name of the parameter that caused the current exception.
+ The value of the argument that causes this exception.
+ The minimum size of the argument.
+
+
+ Creates an with a message saying that the argument must be an absolute URI without a query or fragment identifier and then logs it with .
+ The logged .
+ The name of the parameter that caused the current exception.
+ The value of the argument that causes this exception.
+
+
+ Creates an with a message saying that the argument must be an absolute URI and logs it with .
+ The logged .
+ The name of the parameter that caused the current exception.
+ The value of the argument that causes this exception.
+
+
+ Creates an with a message saying that the argument must be an "http" or "https" URI and logs it with .
+ The logged .
+ The name of the parameter that caused the current exception.
+ The value of the argument that causes this exception.
+
+
+ Unwraps and logs an as using <typeparamref name="TPreferredException" /> as the preferred unwrapped to return.
+ The unwrapped and logged exception.
+ The to unwrap and log
+ The preferred to unwrap. If not present then the first is returned instead.
+
+
+ Unwraps and logs an as .
+ The unwrapped and logged exception.
+ The exception to unwrap and log
+
+
+ Unwraps and logs an as using <typeparamref name="TPreferredException" /> as the preferred unwrapped to return.
+ The unwrapped and logged exception.
+ The to unwrap and log
+ The preferred to unwrap. If not present then the first is returned instead.
+
+
+ Unwraps and logs an as .
+ The unwrapped and logged exception.
+ The exception to unwrap and log
+
+
+ Unwraps and logs an as using <typeparamref name="TPreferredException" /> as the preferred unwrapped to return.
+ The unwrapped and logged exception.
+ The to unwrap and log
+ The preferred to unwrap. If not present then the first is returned instead.
+
+
+ Unwraps and logs an as .
+ The unwrapped and logged exception.
+ The exception to unwrap and log
+
+
+ Unwraps and logs an as using <typeparamref name="TPreferredException" /> as the preferred unwrapped to return.
+ The unwrapped and logged exception.
+ The to unwrap and log
+ The preferred to unwrap. If not present then the first is returned instead.
+
+
+ Unwraps and logs an as .
+ The unwrapped and logged exception.
+ The exception to unwrap and log
+
+
+ Formats the specified resource string using .
+ The formatted string.
+ A composite format string.
+ An object array that contains zero or more objects to format.
+
+
+ Creates an and logs it with .
+ The logged .
+ The name of the parameter that caused the current exception.
+ The value of the argument that failed.
+ A that represents the enumeration class with the valid values.
+
+
+ Creates an and logs it with .
+ The logged .
+ Inner exception
+ A composite format string explaining the reason for the exception.
+ An object array that contains zero or more objects to format.
+
+
+ Creates an and logs it with .
+ The logged .
+ A composite format string explaining the reason for the exception.
+ An object array that contains zero or more objects to format.
+
+
+ Creates an with a message saying that the key was not found and logs it with .
+ The logged .
+
+
+ Creates an with a message saying that the key was not found and logs it with .
+ The logged .
+ A composite format string explaining the reason for the exception.
+ An object array that contains zero or more objects to format.
+
+
+ Creates an and logs it with .
+ The logged .
+ A composite format string explaining the reason for the exception.
+ An object array that contains zero or more objects to format.
+
+
+ Creates an initialized according to guidelines and logs it with .
+ The logged .
+ A composite format string explaining the reason for the exception.
+ An object array that contains zero or more objects to format.
+
+
+ Creates an initialized with the provided parameters and logs it with .
+ The logged .
+
+
+ Creates an initialized with the provided parameters and logs it with .
+ The logged .
+ A composite format string explaining the reason for the exception.
+ An object array that contains zero or more objects to format.
+
+
+ Creates an with the provided properties and logs it with .
+ The logged .
+
+
+ Various helper methods for the static members of .
+
+
+ Gets the static instance for any given HTTP method name.
+ An existing static or a new instance if the method was not found.
+ The HTTP request method.
+
+
+ General purpose logging interface.
+
+
+
+ Logs the given exception at the given level under the given category.
+ The category under which to log the message. It can be empty but it cannot be null.
+ The at which to log the exception.
+ The to log. It cannot be null.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Web.Providers.1.1/System.Web.Providers.1.1.nupkg b/packages/System.Web.Providers.1.1/System.Web.Providers.1.1.nupkg
new file mode 100644
index 0000000..1324524
Binary files /dev/null and b/packages/System.Web.Providers.1.1/System.Web.Providers.1.1.nupkg differ
diff --git a/packages/System.Web.Providers.1.1/content/web.config.transform b/packages/System.Web.Providers.1.1/content/web.config.transform
new file mode 100644
index 0000000..9030f25
--- /dev/null
+++ b/packages/System.Web.Providers.1.1/content/web.config.transform
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/System.Web.Providers.1.1/tools/install.ps1 b/packages/System.Web.Providers.1.1/tools/install.ps1
new file mode 100644
index 0000000..df2e4db
Binary files /dev/null and b/packages/System.Web.Providers.1.1/tools/install.ps1 differ
diff --git a/packages/System.Web.Providers.Core.1.0/System.Web.Providers.Core.1.0.nupkg b/packages/System.Web.Providers.Core.1.0/System.Web.Providers.Core.1.0.nupkg
new file mode 100644
index 0000000..f3309e5
Binary files /dev/null and b/packages/System.Web.Providers.Core.1.0/System.Web.Providers.Core.1.0.nupkg differ
diff --git a/packages/System.Web.Providers.Core.1.0/lib/net40/System.Web.Providers.dll b/packages/System.Web.Providers.Core.1.0/lib/net40/System.Web.Providers.dll
new file mode 100644
index 0000000..5e73fb0
Binary files /dev/null and b/packages/System.Web.Providers.Core.1.0/lib/net40/System.Web.Providers.dll differ
diff --git a/packages/System.Web.Providers.Core.1.0/readme.html b/packages/System.Web.Providers.Core.1.0/readme.html
new file mode 100644
index 0000000..eef7746
Binary files /dev/null and b/packages/System.Web.Providers.Core.1.0/readme.html differ
diff --git a/packages/jQuery.1.6.2/Content/Scripts/jquery-1.6.2-vsdoc.js b/packages/jQuery.1.6.2/Content/Scripts/jquery-1.6.2-vsdoc.js
new file mode 100644
index 0000000..ebfe45f
--- /dev/null
+++ b/packages/jQuery.1.6.2/Content/Scripts/jquery-1.6.2-vsdoc.js
@@ -0,0 +1,9134 @@
+/*
+* This file has been commented to support Visual Studio Intellisense.
+* You should not use this file at runtime inside the browser--it is only
+* intended to be used only for design-time IntelliSense. Please use the
+* standard jQuery library for all production use.
+*
+* Comment version: 1.6.2
+*/
+
+/*!
+* Note: While Microsoft is not the author of this script file, Microsoft
+* grants you the right to use this file for the sole purpose of either:
+* (i) interacting through your browser with the Microsoft website, subject
+* to the website's terms of use; or (ii) using the files as included with a
+* Microsoft product subject to the Microsoft Software License Terms for that
+* Microsoft product. Microsoft reserves all other rights to the files not
+* expressly granted by Microsoft, whether by implication, estoppel or
+* otherwise. The notices and licenses below are for informational purposes
+* only.
+*
+* Provided for Informational Purposes Only
+* MIT License
+*
+* Permission is hereby granted, free of charge, to any person obtaining a
+* copy of this software and associated documentation files (the "Software"),
+* to deal in the Software without restriction, including without limitation
+* the rights to use, copy, modify, merge, publish, distribute, sublicense,
+* and/or sell copies of the Software, and to permit persons to whom the
+* Software is furnished to do so, subject to the following conditions:
+*
+* The copyright notice and this permission notice shall be included in all
+* copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+* DEALINGS IN THE SOFTWARE.
+*
+* jQuery JavaScript Library v1.6.2
+* http://jquery.com/
+*
+* Copyright 2010, John Resig
+*
+* Includes Sizzle.js
+* http://sizzlejs.com/
+* Copyright 2010, The Dojo Foundation
+*
+*/
+(function (window, undefined) {
+
+ // Use the correct document accordingly with window argument (sandbox)
+ var document = window.document;
+ var jQuery = (function () {
+
+ // Define a local copy of jQuery
+ var jQuery = function (selector, context) {
+ ///
+ /// 1: $(expression, context) - This function accepts a string containing a CSS selector which is then used to match a set of elements.
+ ///
2: $(html) - Create DOM elements on-the-fly from the provided String of raw HTML.
+ ///
3: $(elements) - Wrap jQuery functionality around a single or multiple DOM Element(s).
+ ///
4: $(callback) - A shorthand for $(document).ready().
+ ///
5: $() - As of jQuery 1.4, if you pass no arguments in to the jQuery() method, an empty jQuery set will be returned.
+ ///
+ ///
+ /// 1: expression - An expression to search with.
+ ///
2: html - A string of HTML to create on the fly.
+ ///
3: elements - DOM element(s) to be encapsulated by a jQuery object.
+ ///
4: callback - The function to execute when the DOM is ready.
+ ///
+ ///
+ /// 1: context - A DOM Element, Document or jQuery to use as context.
+ ///
+ ///
+
+ // The jQuery object is actually just the init constructor 'enhanced'
+ return new jQuery.fn.init(selector, context);
+ },
+
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+
+ // Map over the $ in case of overwrite
+ _$ = window.$,
+
+ // A central reference to the root jQuery(document)
+ rootjQuery,
+
+ // A simple way to check for HTML strings or ID strings
+ // (both of which we optimize for)
+ quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,
+
+ // Is it a simple selector
+ isSimple = /^.[^:#\[\.,]*$/,
+
+ // Check if a string has a non-whitespace character in it
+ rnotwhite = /\S/,
+ rwhite = /\s/,
+
+ // Used for trimming whitespace
+ trimLeft = /^\s+/,
+ trimRight = /\s+$/,
+
+ // Check for non-word characters
+ rnonword = /\W/,
+
+ // Check for digits
+ rdigit = /\d/,
+
+ // Match a standalone tag
+ rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
+
+ // JSON RegExp
+ rvalidchars = /^[\],:{}\s]*$/,
+ rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
+ rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
+ rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
+
+ // Useragent RegExp
+ rwebkit = /(webkit)[ \/]([\w.]+)/,
+ ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
+ rmsie = /(msie) ([\w.]+)/,
+ rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
+
+ // Keep a UserAgent string for use with jQuery.browser
+ userAgent = navigator.userAgent,
+
+ // For matching the engine and version of the browser
+ browserMatch,
+
+ // Has the ready events already been bound?
+ readyBound = false,
+
+ // The functions to execute on DOM ready
+ readyList = [],
+
+ // The ready event handler
+ DOMContentLoaded,
+
+ // Save a reference to some core methods
+ toString = Object.prototype.toString,
+ hasOwn = Object.prototype.hasOwnProperty,
+ push = Array.prototype.push,
+ slice = Array.prototype.slice,
+ trim = String.prototype.trim,
+ indexOf = Array.prototype.indexOf,
+
+ // [[Class]] -> type pairs
+ class2type = {};
+
+ jQuery.fn = jQuery.prototype = {
+ init: function (selector, context) {
+ var match, elem, ret, doc;
+
+ // Handle $(""), $(null), or $(undefined)
+ if (!selector) {
+ return this;
+ }
+
+ // Handle $(DOMElement)
+ if (selector.nodeType) {
+ this.context = this[0] = selector;
+ this.length = 1;
+ return this;
+ }
+
+ // The body element only exists once, optimize finding it
+ if (selector === "body" && !context && document.body) {
+ this.context = document;
+ this[0] = document.body;
+ this.selector = "body";
+ this.length = 1;
+ return this;
+ }
+
+ // Handle HTML strings
+ if (typeof selector === "string") {
+ // Are we dealing with HTML string or an ID?
+ match = quickExpr.exec(selector);
+
+ // Verify a match, and that no context was specified for #id
+ if (match && (match[1] || !context)) {
+
+ // HANDLE: $(html) -> $(array)
+ if (match[1]) {
+ doc = (context ? context.ownerDocument || context : document);
+
+ // If a single string is passed in and it's a single tag
+ // just do a createElement and skip the rest
+ ret = rsingleTag.exec(selector);
+
+ if (ret) {
+ if (jQuery.isPlainObject(context)) {
+ selector = [document.createElement(ret[1])];
+ jQuery.fn.attr.call(selector, context, true);
+
+ } else {
+ selector = [doc.createElement(ret[1])];
+ }
+
+ } else {
+ ret = jQuery.buildFragment([match[1]], [doc]);
+ selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes;
+ }
+
+ return jQuery.merge(this, selector);
+
+ // HANDLE: $("#id")
+ } else {
+ elem = document.getElementById(match[2]);
+
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ if (elem && elem.parentNode) {
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if (elem.id !== match[2]) {
+ return rootjQuery.find(selector);
+ }
+
+ // Otherwise, we inject the element directly into the jQuery object
+ this.length = 1;
+ this[0] = elem;
+ }
+
+ this.context = document;
+ this.selector = selector;
+ return this;
+ }
+
+ // HANDLE: $("TAG")
+ } else if (!context && !rnonword.test(selector)) {
+ this.selector = selector;
+ this.context = document;
+ selector = document.getElementsByTagName(selector);
+ return jQuery.merge(this, selector);
+
+ // HANDLE: $(expr, $(...))
+ } else if (!context || context.jquery) {
+ return (context || rootjQuery).find(selector);
+
+ // HANDLE: $(expr, context)
+ // (which is just equivalent to: $(context).find(expr)
+ } else {
+ return jQuery(context).find(selector);
+ }
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if (jQuery.isFunction(selector)) {
+ return rootjQuery.ready(selector);
+ }
+
+ if (selector.selector !== undefined) {
+ this.selector = selector.selector;
+ this.context = selector.context;
+ }
+
+ return jQuery.makeArray(selector, this);
+ },
+
+ // Start with an empty selector
+ selector: "",
+
+ // The current version of jQuery being used
+ jquery: "1.4.4",
+
+ // The default length of a jQuery object is 0
+ length: 0,
+
+ // The number of elements contained in the matched element set
+ size: function () {
+ ///
+ ///
The number of elements currently matched.
+ ///
Part of Core
+ ///
+ ///
+
+ return this.length;
+ },
+
+ toArray: function () {
+ ///
+ ///
Retrieve all the DOM elements contained in the jQuery set, as an array.
+ ///
+ ///
+ return slice.call(this, 0);
+ },
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function (num) {
+ ///
+ ///
Access a single matched element. num is used to access the
+ ///
Nth element matched.
+ ///
Part of Core
+ ///
+ ///
+ ///
+ ///
Access the element in the Nth position.
+ ///
+
+ return num == null ?
+
+ // Return a 'clean' array
+ this.toArray() :
+
+ // Return just the object
+ (num < 0 ? this.slice(num)[0] : this[num]);
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function (elems, name, selector) {
+ ///
+ ///
Set the jQuery object to an array of elements, while maintaining
+ ///
the stack.
+ ///
Part of Core
+ ///
+ ///
+ ///
+ ///
An array of elements
+ ///
+
+ // Build a new jQuery matched element set
+ var ret = jQuery();
+
+ if (jQuery.isArray(elems)) {
+ push.apply(ret, elems);
+
+ } else {
+ jQuery.merge(ret, elems);
+ }
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+
+ ret.context = this.context;
+
+ if (name === "find") {
+ ret.selector = this.selector + (this.selector ? " " : "") + selector;
+ } else if (name) {
+ ret.selector = this.selector + "." + name + "(" + selector + ")";
+ }
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Execute a callback for every element in the matched set.
+ // (You can seed the arguments with an array of args, but this is
+ // only used internally.)
+ each: function (callback, args) {
+ ///
+ ///
Execute a function within the context of every matched element.
+ ///
This means that every time the passed-in function is executed
+ ///
(which is once for every element matched) the 'this' keyword
+ ///
points to the specific element.
+ ///
Additionally, the function, when executed, is passed a single
+ ///
argument representing the position of the element in the matched
+ ///
set.
+ ///
Part of Core
+ ///
+ ///
+ ///
+ ///
A function to execute
+ ///
+
+ return jQuery.each(this, callback, args);
+ },
+
+ ready: function (fn) {
+ ///
+ ///
Binds a function to be executed whenever the DOM is ready to be traversed and manipulated.
+ ///
+ /// The function to be executed when the DOM is ready.
+
+ // Attach the listeners
+ jQuery.bindReady();
+
+ // If the DOM is already ready
+ if (jQuery.isReady) {
+ // Execute the function immediately
+ fn.call(document, jQuery);
+
+ // Otherwise, remember the function for later
+ } else if (readyList) {
+ // Add the function to the wait list
+ readyList.push(fn);
+ }
+
+ return this;
+ },
+
+ eq: function (i) {
+ ///
+ ///
Reduce the set of matched elements to a single element.
+ ///
The position of the element in the set of matched elements
+ ///
starts at 0 and goes to length - 1.
+ ///
Part of Core
+ ///
+ ///
+ ///
+ ///
pos The index of the element that you wish to limit to.
+ ///
+
+ return i === -1 ?
+ this.slice(i) :
+ this.slice(i, +i + 1);
+ },
+
+ first: function () {
+ ///
+ ///
Reduce the set of matched elements to the first in the set.
+ ///
+ ///
+
+ return this.eq(0);
+ },
+
+ last: function () {
+ ///
+ ///
Reduce the set of matched elements to the final one in the set.
+ ///
+ ///
+
+ return this.eq(-1);
+ },
+
+ slice: function () {
+ ///
+ ///
Selects a subset of the matched elements. Behaves exactly like the built-in Array slice method.
+ ///
+ /// Where to start the subset (0-based).
+ /// Where to end the subset (not including the end element itself).
+ ///
If omitted, ends at the end of the selection
+ /// The sliced elements
+
+ return this.pushStack(slice.apply(this, arguments),
+ "slice", slice.call(arguments).join(","));
+ },
+
+ map: function (callback) {
+ ///
+ ///
This member is internal.
+ ///
+ ///
+ ///
+
+ return this.pushStack(jQuery.map(this, function (elem, i) {
+ return callback.call(elem, i, elem);
+ }));
+ },
+
+ end: function () {
+ ///
+ ///
End the most recent 'destructive' operation, reverting the list of matched elements
+ ///
back to its previous state. After an end operation, the list of matched elements will
+ ///
revert to the last state of matched elements.
+ ///
If there was no destructive operation before, an empty set is returned.
+ ///
Part of DOM/Traversing
+ ///
+ ///
+
+ return this.prevObject || jQuery(null);
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: push,
+ sort: [].sort,
+ splice: [].splice
+ };
+
+ // Give the init function the jQuery prototype for later instantiation
+ jQuery.fn.init.prototype = jQuery.fn;
+
+ jQuery.extend = jQuery.fn.extend = function () {
+ ///
+ ///
Extend one object with one or more others, returning the original,
+ ///
modified, object. This is a great utility for simple inheritance.
+ ///
jQuery.extend(settings, options);
+ ///
var settings = jQuery.extend({}, defaults, options);
+ ///
Part of JavaScript
+ ///
+ ///
+ ///
The object to extend
+ ///
+ ///
+ ///
The object that will be merged into the first.
+ ///
+ ///
+ ///
(optional) More objects to merge into the first
+ ///
+ ///
+
+ var options, name, src, copy, copyIsArray, clone,
+ target = arguments[0] || {},
+ i = 1,
+ length = arguments.length,
+ deep = false;
+
+ // Handle a deep copy situation
+ if (typeof target === "boolean") {
+ deep = target;
+ target = arguments[1] || {};
+ // skip the boolean and the target
+ i = 2;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if (typeof target !== "object" && !jQuery.isFunction(target)) {
+ target = {};
+ }
+
+ // extend jQuery itself if only one argument is passed
+ if (length === i) {
+ target = this;
+ --i;
+ }
+
+ for (; i < length; i++) {
+ // Only deal with non-null/undefined values
+ if ((options = arguments[i]) != null) {
+ // Extend the base object
+ for (name in options) {
+ src = target[name];
+ copy = options[name];
+
+ // Prevent never-ending loop
+ if (target === copy) {
+ continue;
+ }
+
+ // Recurse if we're merging plain objects or arrays
+ if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)))) {
+ if (copyIsArray) {
+ copyIsArray = false;
+ clone = src && jQuery.isArray(src) ? src : [];
+
+ } else {
+ clone = src && jQuery.isPlainObject(src) ? src : {};
+ }
+
+ // Never move original objects, clone them
+ target[name] = jQuery.extend(deep, clone, copy);
+
+ // Don't bring in undefined values
+ } else if (copy !== undefined) {
+ target[name] = copy;
+ }
+ }
+ }
+ }
+
+ // Return the modified object
+ return target;
+ };
+
+ jQuery.extend({
+ noConflict: function (deep) {
+ ///
+ ///
Run this function to give control of the $ variable back
+ ///
to whichever library first implemented it. This helps to make
+ ///
sure that jQuery doesn't conflict with the $ object
+ ///
of other libraries.
+ ///
By using this function, you will only be able to access jQuery
+ ///
using the 'jQuery' variable. For example, where you used to do
+ ///
$("div p"), you now must do jQuery("div p").
+ ///
Part of Core
+ ///
+ ///
+
+ window.$ = _$;
+
+ if (deep) {
+ window.jQuery = _jQuery;
+ }
+
+ return jQuery;
+ },
+
+ // Is the DOM ready to be used? Set to true once it occurs.
+ isReady: false,
+
+ // A counter to track how many items to wait for before
+ // the ready event fires. See #6781
+ readyWait: 1,
+
+ // Handle when the DOM is ready
+ ready: function (wait) {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ // A third-party is pushing the ready event forwards
+ if (wait === true) {
+ jQuery.readyWait--;
+ }
+
+ // Make sure that the DOM is not already loaded
+ if (!jQuery.readyWait || (wait !== true && !jQuery.isReady)) {
+ // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+ if (!document.body) {
+ return setTimeout(jQuery.ready, 1);
+ }
+
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If a normal DOM Ready event fired, decrement, and wait if need be
+ if (wait !== true && --jQuery.readyWait > 0) {
+ return;
+ }
+
+ // If there are functions bound, to execute
+ if (readyList) {
+ // Execute all of them
+ var fn,
+ i = 0,
+ ready = readyList;
+
+ // Reset the list of functions
+ readyList = null;
+
+ while ((fn = ready[i++])) {
+ fn.call(document, jQuery);
+ }
+
+ // Trigger any bound ready events
+ if (jQuery.fn.trigger) {
+ jQuery(document).trigger("ready").unbind("ready");
+ }
+ }
+ }
+ },
+
+ bindReady: function () {
+ if (readyBound) {
+ return;
+ }
+
+ readyBound = true;
+
+ // Catch cases where $(document).ready() is called after the
+ // browser event has already occurred.
+ if (document.readyState === "complete") {
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
+ return setTimeout(jQuery.ready, 1);
+ }
+
+ // Mozilla, Opera and webkit nightlies currently support this event
+ if (document.addEventListener) {
+ // Use the handy event callback
+ document.addEventListener("DOMContentLoaded", DOMContentLoaded, false);
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener("load", jQuery.ready, false);
+
+ // If IE event model is used
+ } else if (document.attachEvent) {
+ // ensure firing before onload,
+ // maybe late but safe also for iframes
+ document.attachEvent("onreadystatechange", DOMContentLoaded);
+
+ // A fallback to window.onload, that will always work
+ window.attachEvent("onload", jQuery.ready);
+
+ // If IE and not a frame
+ // continually check to see if the document is ready
+ var toplevel = false;
+
+ try {
+ toplevel = window.frameElement == null;
+ } catch (e) { }
+
+ if (document.documentElement.doScroll && toplevel) {
+ doScrollCheck();
+ }
+ }
+ },
+
+ // See test/unit/core.js for details concerning isFunction.
+ // Since version 1.3, DOM methods and functions like alert
+ // aren't supported. They return false on IE (#2968).
+ isFunction: function (obj) {
+ ///
+ ///
Determines if the parameter passed is a function.
+ ///
+ /// The object to check
+ /// True if the parameter is a function; otherwise false.
+
+ return jQuery.type(obj) === "function";
+ },
+
+ isArray: Array.isArray || function (obj) {
+ ///
+ ///
Determine if the parameter passed is an array.
+ ///
+ /// Object to test whether or not it is an array.
+ /// True if the parameter is a function; otherwise false.
+
+ return jQuery.type(obj) === "array";
+ },
+
+ // A crude way of determining if an object is a window
+ isWindow: function (obj) {
+ return obj && typeof obj === "object" && "setInterval" in obj;
+ },
+
+ isNaN: function (obj) {
+ return obj == null || !rdigit.test(obj) || isNaN(obj);
+ },
+
+ type: function (obj) {
+ return obj == null ?
+ String(obj) :
+ class2type[toString.call(obj)] || "object";
+ },
+
+ isPlainObject: function (obj) {
+ ///
+ ///
Check to see if an object is a plain object (created using "{}" or "new Object").
+ ///
+ ///
+ ///
The object that will be checked to see if it's a plain object.
+ ///
+ ///
+
+ // Must be an Object.
+ // Because of IE, we also have to check the presence of the constructor property.
+ // Make sure that DOM nodes and window objects don't pass through, as well
+ if (!obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow(obj)) {
+ return false;
+ }
+
+ // Not own constructor property must be Object
+ if (obj.constructor &&
+ !hasOwn.call(obj, "constructor") &&
+ !hasOwn.call(obj.constructor.prototype, "isPrototypeOf")) {
+ return false;
+ }
+
+ // Own properties are enumerated firstly, so to speed up,
+ // if last one is own, then all properties are own.
+
+ var key;
+ for (key in obj) { }
+
+ return key === undefined || hasOwn.call(obj, key);
+ },
+
+ isEmptyObject: function (obj) {
+ ///
+ ///
Check to see if an object is empty (contains no properties).
+ ///
+ ///
+ ///
The object that will be checked to see if it's empty.
+ ///
+ ///
+
+ for (var name in obj) {
+ return false;
+ }
+ return true;
+ },
+
+ error: function (msg) {
+ throw msg;
+ },
+
+ parseJSON: function (data) {
+ if (typeof data !== "string" || !data) {
+ return null;
+ }
+
+ // Make sure leading/trailing whitespace is removed (IE can't handle it)
+ data = jQuery.trim(data);
+
+ // Make sure the incoming data is actual JSON
+ // Logic borrowed from http://json.org/json2.js
+ if (rvalidchars.test(data.replace(rvalidescape, "@")
+ .replace(rvalidtokens, "]")
+ .replace(rvalidbraces, ""))) {
+
+ // Try to use the native JSON parser first
+ return window.JSON && window.JSON.parse ?
+ window.JSON.parse(data) :
+ (new Function("return " + data))();
+
+ } else {
+ jQuery.error("Invalid JSON: " + data);
+ }
+ },
+
+ noop: function () {
+ ///
+ ///
An empty function.
+ ///
+ ///
+ },
+
+ // Evalulates a script in a global context
+ globalEval: function (data) {
+ ///
+ ///
Internally evaluates a script in a global context.
+ ///
+ ///
+
+ if (data && rnotwhite.test(data)) {
+ // Inspired by code by Andrea Giammarchi
+ // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
+ var head = document.getElementsByTagName("head")[0] || document.documentElement,
+ script = document.createElement("script");
+
+ script.type = "text/javascript";
+
+ if (jQuery.support.scriptEval) {
+ script.appendChild(document.createTextNode(data));
+ } else {
+ script.text = data;
+ }
+
+ // Use insertBefore instead of appendChild to circumvent an IE6 bug.
+ // This arises when a base node is used (#2709).
+ head.insertBefore(script, head.firstChild);
+ head.removeChild(script);
+ }
+ },
+
+ nodeName: function (elem, name) {
+ ///
+ ///
Checks whether the specified element has the specified DOM node name.
+ ///
+ /// The element to examine
+ /// The node name to check
+ /// True if the specified node name matches the node's DOM node name; otherwise false
+
+ return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
+ },
+
+ // args is for internal usage only
+ each: function (object, callback, args) {
+ ///
+ ///
A generic iterator function, which can be used to seemlessly
+ ///
iterate over both objects and arrays. This function is not the same
+ ///
as $().each() - which is used to iterate, exclusively, over a jQuery
+ ///
object. This function can be used to iterate over anything.
+ ///
The callback has two arguments:the key (objects) or index (arrays) as first
+ ///
the first, and the value as the second.
+ ///
Part of JavaScript
+ ///
+ ///
+ ///
The object, or array, to iterate over.
+ ///
+ ///
+ ///
The function that will be executed on every object.
+ ///
+ ///
+
+ var name, i = 0,
+ length = object.length,
+ isObj = length === undefined || jQuery.isFunction(object);
+
+ if (args) {
+ if (isObj) {
+ for (name in object) {
+ if (callback.apply(object[name], args) === false) {
+ break;
+ }
+ }
+ } else {
+ for (; i < length; ) {
+ if (callback.apply(object[i++], args) === false) {
+ break;
+ }
+ }
+ }
+
+ // A special, fast, case for the most common use of each
+ } else {
+ if (isObj) {
+ for (name in object) {
+ if (callback.call(object[name], name, object[name]) === false) {
+ break;
+ }
+ }
+ } else {
+ for (var value = object[0];
+ i < length && callback.call(value, i, value) !== false; value = object[++i]) { }
+ }
+ }
+
+ return object;
+ },
+
+ // Use native String.trim function wherever possible
+ trim: trim ?
+ function (text) {
+ return text == null ?
+ "" :
+ trim.call(text);
+ } :
+
+ // Otherwise use our own trimming functionality
+ function (text) {
+ return text == null ?
+ "" :
+ text.toString().replace(trimLeft, "").replace(trimRight, "");
+ },
+
+ // results is for internal usage only
+ makeArray: function (array, results) {
+ ///
+ ///
Turns anything into a true array. This is an internal method.
+ ///
+ /// Anything to turn into an actual Array
+ ///
+ ///
+
+ var ret = results || [];
+
+ if (array != null) {
+ // The window, strings (and functions) also have 'length'
+ // The extra typeof function check is to prevent crashes
+ // in Safari 2 (See: #3039)
+ // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
+ var type = jQuery.type(array);
+
+ if (array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow(array)) {
+ push.call(ret, array);
+ } else {
+ jQuery.merge(ret, array);
+ }
+ }
+
+ return ret;
+ },
+
+ inArray: function (elem, array) {
+ if (array.indexOf) {
+ return array.indexOf(elem);
+ }
+
+ for (var i = 0, length = array.length; i < length; i++) {
+ if (array[i] === elem) {
+ return i;
+ }
+ }
+
+ return -1;
+ },
+
+ merge: function (first, second) {
+ ///
+ ///
Merge two arrays together, removing all duplicates.
+ ///
The new array is: All the results from the first array, followed
+ ///
by the unique results from the second array.
+ ///
Part of JavaScript
+ ///
+ ///
+ ///
+ ///
The first array to merge.
+ ///
+ ///
+ ///
The second array to merge.
+ ///
+
+ var i = first.length,
+ j = 0;
+
+ if (typeof second.length === "number") {
+ for (var l = second.length; j < l; j++) {
+ first[i++] = second[j];
+ }
+
+ } else {
+ while (second[j] !== undefined) {
+ first[i++] = second[j++];
+ }
+ }
+
+ first.length = i;
+
+ return first;
+ },
+
+ grep: function (elems, callback, inv) {
+ ///
+ ///
Filter items out of an array, by using a filter function.
+ ///
The specified function will be passed two arguments: The
+ ///
current array item and the index of the item in the array. The
+ ///
function must return 'true' to keep the item in the array,
+ ///
false to remove it.
+ ///
});
+ ///
Part of JavaScript
+ ///
+ ///
+ ///
+ ///
array The Array to find items in.
+ ///
+ ///
+ ///
The function to process each item against.
+ ///
+ ///
+ ///
Invert the selection - select the opposite of the function.
+ ///
+
+ var ret = [], retVal;
+ inv = !!inv;
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for (var i = 0, length = elems.length; i < length; i++) {
+ retVal = !!callback(elems[i], i);
+ if (inv !== retVal) {
+ ret.push(elems[i]);
+ }
+ }
+
+ return ret;
+ },
+
+ // arg is for internal usage only
+ map: function (elems, callback, arg) {
+ ///
+ ///
Translate all items in an array to another array of items.
+ ///
The translation function that is provided to this method is
+ ///
called for each item in the array and is passed one argument:
+ ///
The item to be translated.
+ ///
The function can then return the translated value, 'null'
+ ///
(to remove the item), or an array of values - which will
+ ///
be flattened into the full array.
+ ///
Part of JavaScript
+ ///
+ ///
+ ///
+ ///
array The Array to translate.
+ ///
+ ///
+ ///
The function to process each item against.
+ ///
+
+ var ret = [], value;
+
+ // Go through the array, translating each of the items to their
+ // new value (or values).
+ for (var i = 0, length = elems.length; i < length; i++) {
+ value = callback(elems[i], i, arg);
+
+ if (value != null) {
+ ret[ret.length] = value;
+ }
+ }
+
+ return ret.concat.apply([], ret);
+ },
+
+ // A global GUID counter for objects
+ guid: 1,
+
+ proxy: function (fn, proxy, thisObject) {
+ ///
+ ///
Takes a function and returns a new one that will always have a particular scope.
+ ///
+ ///
+ ///
The function whose scope will be changed.
+ ///
+ ///
+ ///
The object to which the scope of the function should be set.
+ ///
+ ///
+
+ if (arguments.length === 2) {
+ if (typeof proxy === "string") {
+ thisObject = fn;
+ fn = thisObject[proxy];
+ proxy = undefined;
+
+ } else if (proxy && !jQuery.isFunction(proxy)) {
+ thisObject = proxy;
+ proxy = undefined;
+ }
+ }
+
+ if (!proxy && fn) {
+ proxy = function () {
+ return fn.apply(thisObject || this, arguments);
+ };
+ }
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ if (fn) {
+ proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
+ }
+
+ // So proxy can be declared as an argument
+ return proxy;
+ },
+
+ // Mutifunctional method to get and set values to a collection
+ // The value/s can be optionally by executed if its a function
+ access: function (elems, key, value, exec, fn, pass) {
+ var length = elems.length;
+
+ // Setting many attributes
+ if (typeof key === "object") {
+ for (var k in key) {
+ jQuery.access(elems, k, key[k], exec, fn, value);
+ }
+ return elems;
+ }
+
+ // Setting one attribute
+ if (value !== undefined) {
+ // Optionally, function values get executed if exec is true
+ exec = !pass && exec && jQuery.isFunction(value);
+
+ for (var i = 0; i < length; i++) {
+ fn(elems[i], key, exec ? value.call(elems[i], i, fn(elems[i], key)) : value, pass);
+ }
+
+ return elems;
+ }
+
+ // Getting an attribute
+ return length ? fn(elems[0], key) : undefined;
+ },
+
+ now: function () {
+ return (new Date()).getTime();
+ },
+
+ // Use of jQuery.browser is frowned upon.
+ // More details: http://docs.jquery.com/Utilities/jQuery.browser
+ uaMatch: function (ua) {
+ ua = ua.toLowerCase();
+
+ var match = rwebkit.exec(ua) ||
+ ropera.exec(ua) ||
+ rmsie.exec(ua) ||
+ ua.indexOf("compatible") < 0 && rmozilla.exec(ua) ||
+ [];
+
+ return { browser: match[1] || "", version: match[2] || "0" };
+ },
+
+ browser: {}
+ });
+
+ // Populate the class2type map
+ jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function (i, name) {
+ class2type["[object " + name + "]"] = name.toLowerCase();
+ });
+
+ browserMatch = jQuery.uaMatch(userAgent);
+ if (browserMatch.browser) {
+ jQuery.browser[browserMatch.browser] = true;
+ jQuery.browser.version = browserMatch.version;
+ }
+
+ // Deprecated, use jQuery.browser.webkit instead
+ if (jQuery.browser.webkit) {
+ jQuery.browser.safari = true;
+ }
+
+ if (indexOf) {
+ jQuery.inArray = function (elem, array) {
+ ///
+ ///
Determines the index of the first parameter in the array.
+ ///
+ /// The value to see if it exists in the array.
+ /// The array to look through for the value
+ /// The 0-based index of the item if it was found, otherwise -1.
+
+ return indexOf.call(array, elem);
+ };
+ }
+
+ // Verify that \s matches non-breaking spaces
+ // (IE fails on this test)
+ if (!rwhite.test("\xA0")) {
+ trimLeft = /^[\s\xA0]+/;
+ trimRight = /[\s\xA0]+$/;
+ }
+
+ // All jQuery objects should point back to these
+ rootjQuery = jQuery(document);
+
+ // Cleanup functions for the document ready method
+ if (document.addEventListener) {
+ DOMContentLoaded = function () {
+ document.removeEventListener("DOMContentLoaded", DOMContentLoaded, false);
+ jQuery.ready();
+ };
+
+ } else if (document.attachEvent) {
+ DOMContentLoaded = function () {
+ // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+ if (document.readyState === "complete") {
+ document.detachEvent("onreadystatechange", DOMContentLoaded);
+ jQuery.ready();
+ }
+ };
+ }
+
+ // The DOM ready check for Internet Explorer
+ function doScrollCheck() {
+ if (jQuery.isReady) {
+ return;
+ }
+
+ try {
+ // If IE is used, use the trick by Diego Perini
+ // http://javascript.nwbox.com/IEContentLoaded/
+ document.documentElement.doScroll("left");
+ } catch (e) {
+ setTimeout(doScrollCheck, 1);
+ return;
+ }
+
+ // and execute any waiting functions
+ jQuery.ready();
+ }
+
+ // Expose jQuery to the global object
+ return (window.jQuery = window.$ = jQuery);
+
+ })();
+
+
+
+ // [vsdoc] The following function has been modified for IntelliSense.
+ // [vsdoc] Stubbing support properties to "false" for IntelliSense compat.
+ (function () {
+
+ jQuery.support = {};
+
+ // var root = document.documentElement,
+ // script = document.createElement("script"),
+ // div = document.createElement("div"),
+ // id = "script" + jQuery.now();
+
+ // div.style.display = "none";
+ // div.innerHTML = "
a";
+
+ // var all = div.getElementsByTagName("*"),
+ // a = div.getElementsByTagName("a")[0],
+ // select = document.createElement("select"),
+ // opt = select.appendChild( document.createElement("option") );
+
+ // // Can't get basic test support
+ // if ( !all || !all.length || !a ) {
+ // return;
+ // }
+
+ jQuery.support = {
+ // IE strips leading whitespace when .innerHTML is used
+ leadingWhitespace: false,
+
+ // Make sure that tbody elements aren't automatically inserted
+ // IE will insert them into empty tables
+ tbody: false,
+
+ // Make sure that link elements get serialized correctly by innerHTML
+ // This requires a wrapper element in IE
+ htmlSerialize: false,
+
+ // Get the style information from getAttribute
+ // (IE uses .cssText insted)
+ style: false,
+
+ // Make sure that URLs aren't manipulated
+ // (IE normalizes it by default)
+ hrefNormalized: false,
+
+ // Make sure that element opacity exists
+ // (IE uses filter instead)
+ // Use a regex to work around a WebKit issue. See #5145
+ opacity: false,
+
+ // Verify style float existence
+ // (IE uses styleFloat instead of cssFloat)
+ cssFloat: false,
+
+ // Make sure that if no value is specified for a checkbox
+ // that it defaults to "on".
+ // (WebKit defaults to "" instead)
+ checkOn: false,
+
+ // Make sure that a selected-by-default option has a working selected property.
+ // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
+ optSelected: false,
+
+ // Will be defined later
+ deleteExpando: false,
+ optDisabled: false,
+ checkClone: false,
+ scriptEval: false,
+ noCloneEvent: false,
+ boxModel: false,
+ inlineBlockNeedsLayout: false,
+ shrinkWrapBlocks: false,
+ reliableHiddenOffsets: true
+ };
+
+ // // Make sure that the options inside disabled selects aren't marked as disabled
+ // // (WebKit marks them as diabled)
+ // select.disabled = true;
+ // jQuery.support.optDisabled = !opt.disabled;
+
+ // script.type = "text/javascript";
+ // try {
+ // script.appendChild( document.createTextNode( "window." + id + "=1;" ) );
+ // } catch(e) {}
+
+ // root.insertBefore( script, root.firstChild );
+
+ // // Make sure that the execution of code works by injecting a script
+ // // tag with appendChild/createTextNode
+ // // (IE doesn't support this, fails, and uses .text instead)
+ // if ( window[ id ] ) {
+ // jQuery.support.scriptEval = true;
+ // delete window[ id ];
+ // }
+
+ // // Test to see if it's possible to delete an expando from an element
+ // // Fails in Internet Explorer
+ // try {
+ // delete script.test;
+
+ // } catch(e) {
+ // jQuery.support.deleteExpando = false;
+ // }
+
+ // root.removeChild( script );
+
+ // if ( div.attachEvent && div.fireEvent ) {
+ // div.attachEvent("onclick", function click() {
+ // // Cloning a node shouldn't copy over any
+ // // bound event handlers (IE does this)
+ // jQuery.support.noCloneEvent = false;
+ // div.detachEvent("onclick", click);
+ // });
+ // div.cloneNode(true).fireEvent("onclick");
+ // }
+
+ // div = document.createElement("div");
+ // div.innerHTML = "";
+
+ // var fragment = document.createDocumentFragment();
+ // fragment.appendChild( div.firstChild );
+
+ // // WebKit doesn't clone checked state correctly in fragments
+ // jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked;
+
+ // // Figure out if the W3C box model works as expected
+ // // document.body must exist before we can do this
+ // jQuery(function() {
+ // var div = document.createElement("div");
+ // div.style.width = div.style.paddingLeft = "1px";
+
+ // document.body.appendChild( div );
+ // jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2;
+
+ // if ( "zoom" in div.style ) {
+ // // Check if natively block-level elements act like inline-block
+ // // elements when setting their display to 'inline' and giving
+ // // them layout
+ // // (IE < 8 does this)
+ // div.style.display = "inline";
+ // div.style.zoom = 1;
+ // jQuery.support.inlineBlockNeedsLayout = div.offsetWidth === 2;
+
+ // // Check if elements with layout shrink-wrap their children
+ // // (IE 6 does this)
+ // div.style.display = "";
+ // div.innerHTML = "";
+ // jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2;
+ // }
+
+ // div.innerHTML = "
t
";
+ // var tds = div.getElementsByTagName("td");
+
+ // // Check if table cells still have offsetWidth/Height when they are set
+ // // to display:none and there are still other visible table cells in a
+ // // table row; if so, offsetWidth/Height are not reliable for use when
+ // // determining if an element has been hidden directly using
+ // // display:none (it is still safe to use offsets if a parent element is
+ // // hidden; don safety goggles and see bug #4512 for more information).
+ // // (only IE 8 fails this test)
+ // jQuery.support.reliableHiddenOffsets = tds[0].offsetHeight === 0;
+
+ // tds[0].style.display = "";
+ // tds[1].style.display = "none";
+
+ // // Check if empty table cells still have offsetWidth/Height
+ // // (IE < 8 fail this test)
+ // jQuery.support.reliableHiddenOffsets = jQuery.support.reliableHiddenOffsets && tds[0].offsetHeight === 0;
+ // div.innerHTML = "";
+
+ // document.body.removeChild( div ).style.display = "none";
+ // div = tds = null;
+ // });
+
+ // // Technique from Juriy Zaytsev
+ // // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
+ // var eventSupported = function( eventName ) {
+ // var el = document.createElement("div");
+ // eventName = "on" + eventName;
+
+ // var isSupported = (eventName in el);
+ // if ( !isSupported ) {
+ // el.setAttribute(eventName, "return;");
+ // isSupported = typeof el[eventName] === "function";
+ // }
+ // el = null;
+
+ // return isSupported;
+ // };
+
+ jQuery.support.submitBubbles = false;
+ jQuery.support.changeBubbles = false;
+
+ // // release memory in IE
+ // root = script = div = all = a = null;
+ })();
+
+
+
+ var windowData = {},
+ rbrace = /^(?:\{.*\}|\[.*\])$/;
+
+ jQuery.extend({
+ cache: {},
+
+ // Please use with caution
+ uuid: 0,
+
+ // Unique for each copy of jQuery on the page
+ expando: "jQuery" + jQuery.now(),
+
+ // The following elements throw uncatchable exceptions if you
+ // attempt to add expando properties to them.
+ noData: {
+ "embed": true,
+ // Ban all objects except for Flash (which handle expandos)
+ "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
+ "applet": true
+ },
+
+ data: function (elem, name, data) {
+ ///
+ ///
Store arbitrary data associated with the specified element.
+ ///
+ ///
+ ///
The DOM element to associate with the data.
+ ///
+ ///
+ ///
A string naming the piece of data to set.
+ ///
+ ///
+ ///
The new data value.
+ ///
+ ///
+
+ if (!jQuery.acceptData(elem)) {
+ return;
+ }
+
+ elem = elem == window ?
+ windowData :
+ elem;
+
+ var isNode = elem.nodeType,
+ id = isNode ? elem[jQuery.expando] : null,
+ cache = jQuery.cache, thisCache;
+
+ if (isNode && !id && typeof name === "string" && data === undefined) {
+ return;
+ }
+
+ // Get the data from the object directly
+ if (!isNode) {
+ cache = elem;
+
+ // Compute a unique ID for the element
+ } else if (!id) {
+ elem[jQuery.expando] = id = ++jQuery.uuid;
+ }
+
+ // Avoid generating a new cache unless none exists and we
+ // want to manipulate it.
+ if (typeof name === "object") {
+ if (isNode) {
+ cache[id] = jQuery.extend(cache[id], name);
+
+ } else {
+ jQuery.extend(cache, name);
+ }
+
+ } else if (isNode && !cache[id]) {
+ cache[id] = {};
+ }
+
+ thisCache = isNode ? cache[id] : cache;
+
+ // Prevent overriding the named cache with undefined values
+ if (data !== undefined) {
+ thisCache[name] = data;
+ }
+
+ return typeof name === "string" ? thisCache[name] : thisCache;
+ },
+
+ removeData: function (elem, name) {
+ if (!jQuery.acceptData(elem)) {
+ return;
+ }
+
+ elem = elem == window ?
+ windowData :
+ elem;
+
+ var isNode = elem.nodeType,
+ id = isNode ? elem[jQuery.expando] : elem,
+ cache = jQuery.cache,
+ thisCache = isNode ? cache[id] : id;
+
+ // If we want to remove a specific section of the element's data
+ if (name) {
+ if (thisCache) {
+ // Remove the section of cache data
+ delete thisCache[name];
+
+ // If we've removed all the data, remove the element's cache
+ if (isNode && jQuery.isEmptyObject(thisCache)) {
+ jQuery.removeData(elem);
+ }
+ }
+
+ // Otherwise, we want to remove all of the element's data
+ } else {
+ if (isNode && jQuery.support.deleteExpando) {
+ delete elem[jQuery.expando];
+
+ } else if (elem.removeAttribute) {
+ elem.removeAttribute(jQuery.expando);
+
+ // Completely remove the data cache
+ } else if (isNode) {
+ delete cache[id];
+
+ // Remove all fields from the object
+ } else {
+ for (var n in elem) {
+ delete elem[n];
+ }
+ }
+ }
+ },
+
+ // A method for determining if a DOM node can handle the data expando
+ acceptData: function (elem) {
+ if (elem.nodeName) {
+ var match = jQuery.noData[elem.nodeName.toLowerCase()];
+
+ if (match) {
+ return !(match === true || elem.getAttribute("classid") !== match);
+ }
+ }
+
+ return true;
+ }
+ });
+
+ jQuery.fn.extend({
+ data: function (key, value) {
+ ///
+ ///
Store arbitrary data associated with the matched elements.
+ ///
+ ///
+ ///
A string naming the piece of data to set.
+ ///
+ ///
+ ///
The new data value.
+ ///
+ ///
+
+ var data = null;
+
+ if (typeof key === "undefined") {
+ if (this.length) {
+ var attr = this[0].attributes, name;
+ data = jQuery.data(this[0]);
+
+ for (var i = 0, l = attr.length; i < l; i++) {
+ name = attr[i].name;
+
+ if (name.indexOf("data-") === 0) {
+ name = name.substr(5);
+ dataAttr(this[0], name, data[name]);
+ }
+ }
+ }
+
+ return data;
+
+ } else if (typeof key === "object") {
+ return this.each(function () {
+ jQuery.data(this, key);
+ });
+ }
+
+ var parts = key.split(".");
+ parts[1] = parts[1] ? "." + parts[1] : "";
+
+ if (value === undefined) {
+ data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
+
+ // Try to fetch any internally stored data first
+ if (data === undefined && this.length) {
+ data = jQuery.data(this[0], key);
+ data = dataAttr(this[0], key, data);
+ }
+
+ return data === undefined && parts[1] ?
+ this.data(parts[0]) :
+ data;
+
+ } else {
+ return this.each(function () {
+ var $this = jQuery(this),
+ args = [parts[0], value];
+
+ $this.triggerHandler("setData" + parts[1] + "!", args);
+ jQuery.data(this, key, value);
+ $this.triggerHandler("changeData" + parts[1] + "!", args);
+ });
+ }
+ },
+
+ removeData: function (key) {
+ return this.each(function () {
+ jQuery.removeData(this, key);
+ });
+ }
+ });
+
+ function dataAttr(elem, key, data) {
+ // If nothing was found internally, try to fetch any
+ // data from the HTML5 data-* attribute
+ if (data === undefined && elem.nodeType === 1) {
+ data = elem.getAttribute("data-" + key);
+
+ if (typeof data === "string") {
+ try {
+ data = data === "true" ? true :
+ data === "false" ? false :
+ data === "null" ? null :
+ !jQuery.isNaN(data) ? parseFloat(data) :
+ rbrace.test(data) ? jQuery.parseJSON(data) :
+ data;
+ } catch (e) { }
+
+ // Make sure we set the data so it isn't changed later
+ jQuery.data(elem, key, data);
+
+ } else {
+ data = undefined;
+ }
+ }
+
+ return data;
+ }
+
+
+
+
+ jQuery.extend({
+ queue: function (elem, type, data) {
+ if (!elem) {
+ return;
+ }
+
+ type = (type || "fx") + "queue";
+ var q = jQuery.data(elem, type);
+
+ // Speed up dequeue by getting out quickly if this is just a lookup
+ if (!data) {
+ return q || [];
+ }
+
+ if (!q || jQuery.isArray(data)) {
+ q = jQuery.data(elem, type, jQuery.makeArray(data));
+
+ } else {
+ q.push(data);
+ }
+
+ return q;
+ },
+
+ dequeue: function (elem, type) {
+ type = type || "fx";
+
+ var queue = jQuery.queue(elem, type),
+ fn = queue.shift();
+
+ // If the fx queue is dequeued, always remove the progress sentinel
+ if (fn === "inprogress") {
+ fn = queue.shift();
+ }
+
+ if (fn) {
+ // Add a progress sentinel to prevent the fx queue from being
+ // automatically dequeued
+ if (type === "fx") {
+ queue.unshift("inprogress");
+ }
+
+ fn.call(elem, function () {
+ jQuery.dequeue(elem, type);
+ });
+ }
+ }
+ });
+
+ jQuery.fn.extend({
+ queue: function (type, data) {
+ ///
+ ///
1: queue() - Returns a reference to the first element's queue (which is an array of functions).
+ ///
2: queue(callback) - Adds a new function, to be executed, onto the end of the queue of all matched elements.
+ ///
3: queue(queue) - Replaces the queue of all matched element with this new queue (the array of functions).
+ ///
+ /// The function to add to the queue.
+ ///
+
+ if (typeof type !== "string") {
+ data = type;
+ type = "fx";
+ }
+
+ if (data === undefined) {
+ return jQuery.queue(this[0], type);
+ }
+ return this.each(function (i) {
+ var queue = jQuery.queue(this, type, data);
+
+ if (type === "fx" && queue[0] !== "inprogress") {
+ jQuery.dequeue(this, type);
+ }
+ });
+ },
+ dequeue: function (type) {
+ ///
+ ///
Removes a queued function from the front of the queue and executes it.
+ ///
+ /// The type of queue to access.
+ ///
+
+ return this.each(function () {
+ jQuery.dequeue(this, type);
+ });
+ },
+
+ // Based off of the plugin by Clint Helfers, with permission.
+ // http://blindsignals.com/index.php/2009/07/jquery-delay/
+ delay: function (time, type) {
+ ///
+ ///
Set a timer to delay execution of subsequent items in the queue.
+ ///
+ ///
+ ///
An integer indicating the number of milliseconds to delay execution of the next item in the queue.
+ ///
+ ///
+ ///
A string containing the name of the queue. Defaults to fx, the standard effects queue.
+ ///
+ ///
+
+ time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;
+ type = type || "fx";
+
+ return this.queue(type, function () {
+ var elem = this;
+ setTimeout(function () {
+ jQuery.dequeue(elem, type);
+ }, time);
+ });
+ },
+
+ clearQueue: function (type) {
+ ///
+ ///
Remove from the queue all items that have not yet been run.
+ ///
+ ///
+ ///
A string containing the name of the queue. Defaults to fx, the standard effects queue.
+ ///
+ ///
+
+ return this.queue(type || "fx", []);
+ }
+ });
+
+
+
+
+ var rclass = /[\n\t]/g,
+ rspaces = /\s+/,
+ rreturn = /\r/g,
+ rspecialurl = /^(?:href|src|style)$/,
+ rtype = /^(?:button|input)$/i,
+ rfocusable = /^(?:button|input|object|select|textarea)$/i,
+ rclickable = /^a(?:rea)?$/i,
+ rradiocheck = /^(?:radio|checkbox)$/i;
+
+ jQuery.props = {
+ "for": "htmlFor",
+ "class": "className",
+ readonly: "readOnly",
+ maxlength: "maxLength",
+ cellspacing: "cellSpacing",
+ rowspan: "rowSpan",
+ colspan: "colSpan",
+ tabindex: "tabIndex",
+ usemap: "useMap",
+ frameborder: "frameBorder"
+ };
+
+ jQuery.fn.extend({
+ attr: function (name, value) {
+ ///
+ ///
Set a single property to a computed value, on all matched elements.
+ ///
Instead of a value, a function is provided, that computes the value.
+ ///
Part of DOM/Attributes
+ ///
+ ///
+ ///
+ ///
The name of the property to set.
+ ///
+ ///
+ ///
A function returning the value to set.
+ ///
+
+ return jQuery.access(this, name, value, true, jQuery.attr);
+ },
+
+ removeAttr: function (name, fn) {
+ ///
+ ///
Remove an attribute from each of the matched elements.
+ ///
Part of DOM/Attributes
+ ///
+ ///
+ ///
An attribute to remove.
+ ///
+ ///
+
+ return this.each(function () {
+ jQuery.attr(this, name, "");
+ if (this.nodeType === 1) {
+ this.removeAttribute(name);
+ }
+ });
+ },
+
+ addClass: function (value) {
+ ///
+ ///
Adds the specified class(es) to each of the set of matched elements.
+ ///
Part of DOM/Attributes
+ ///
+ ///
+ ///
One or more class names to be added to the class attribute of each matched element.
+ ///
+ ///
+
+ if (jQuery.isFunction(value)) {
+ return this.each(function (i) {
+ var self = jQuery(this);
+ self.addClass(value.call(this, i, self.attr("class")));
+ });
+ }
+
+ if (value && typeof value === "string") {
+ var classNames = (value || "").split(rspaces);
+
+ for (var i = 0, l = this.length; i < l; i++) {
+ var elem = this[i];
+
+ if (elem.nodeType === 1) {
+ if (!elem.className) {
+ elem.className = value;
+
+ } else {
+ var className = " " + elem.className + " ",
+ setClass = elem.className;
+
+ for (var c = 0, cl = classNames.length; c < cl; c++) {
+ if (className.indexOf(" " + classNames[c] + " ") < 0) {
+ setClass += " " + classNames[c];
+ }
+ }
+ elem.className = jQuery.trim(setClass);
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ removeClass: function (value) {
+ ///
+ ///
Removes all or the specified class(es) from the set of matched elements.
+ ///
Part of DOM/Attributes
+ ///
+ ///
+ ///
(Optional) A class name to be removed from the class attribute of each matched element.
+ ///
+ ///
+
+ if (jQuery.isFunction(value)) {
+ return this.each(function (i) {
+ var self = jQuery(this);
+ self.removeClass(value.call(this, i, self.attr("class")));
+ });
+ }
+
+ if ((value && typeof value === "string") || value === undefined) {
+ var classNames = (value || "").split(rspaces);
+
+ for (var i = 0, l = this.length; i < l; i++) {
+ var elem = this[i];
+
+ if (elem.nodeType === 1 && elem.className) {
+ if (value) {
+ var className = (" " + elem.className + " ").replace(rclass, " ");
+ for (var c = 0, cl = classNames.length; c < cl; c++) {
+ className = className.replace(" " + classNames[c] + " ", " ");
+ }
+ elem.className = jQuery.trim(className);
+
+ } else {
+ elem.className = "";
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ toggleClass: function (value, stateVal) {
+ ///
+ ///
Add or remove a class from each element in the set of matched elements, depending
+ ///
on either the class's presence or the value of the switch argument.
+ ///
+ ///
+ ///
A class name to be toggled for each element in the matched set.
+ ///
+ ///
+ ///
A boolean value to determine whether the class should be added or removed.
+ ///
+ ///
+
+ var type = typeof value,
+ isBool = typeof stateVal === "boolean";
+
+ if (jQuery.isFunction(value)) {
+ return this.each(function (i) {
+ var self = jQuery(this);
+ self.toggleClass(value.call(this, i, self.attr("class"), stateVal), stateVal);
+ });
+ }
+
+ return this.each(function () {
+ if (type === "string") {
+ // toggle individual class names
+ var className,
+ i = 0,
+ self = jQuery(this),
+ state = stateVal,
+ classNames = value.split(rspaces);
+
+ while ((className = classNames[i++])) {
+ // check each className given, space seperated list
+ state = isBool ? state : !self.hasClass(className);
+ self[state ? "addClass" : "removeClass"](className);
+ }
+
+ } else if (type === "undefined" || type === "boolean") {
+ if (this.className) {
+ // store className if set
+ jQuery.data(this, "__className__", this.className);
+ }
+
+ // toggle whole className
+ this.className = this.className || value === false ? "" : jQuery.data(this, "__className__") || "";
+ }
+ });
+ },
+
+ hasClass: function (selector) {
+ ///
+ ///
Checks the current selection against a class and returns whether at least one selection has a given class.
+ ///
+ /// The class to check against
+ /// True if at least one element in the selection has the class, otherwise false.
+
+ var className = " " + selector + " ";
+ for (var i = 0, l = this.length; i < l; i++) {
+ if ((" " + this[i].className + " ").replace(rclass, " ").indexOf(className) > -1) {
+ return true;
+ }
+ }
+
+ return false;
+ },
+
+ val: function (value) {
+ ///
+ ///
Set the value of every matched element.
+ ///
Part of DOM/Attributes
+ ///
+ ///
+ ///
+ ///
A string of text or an array of strings to set as the value property of each
+ ///
matched element.
+ ///
+
+ if (!arguments.length) {
+ var elem = this[0];
+
+ if (elem) {
+ if (jQuery.nodeName(elem, "option")) {
+ // attributes.value is undefined in Blackberry 4.7 but
+ // uses .value. See #6932
+ var val = elem.attributes.value;
+ return !val || val.specified ? elem.value : elem.text;
+ }
+
+ // We need to handle select boxes special
+ if (jQuery.nodeName(elem, "select")) {
+ var index = elem.selectedIndex,
+ values = [],
+ options = elem.options,
+ one = elem.type === "select-one";
+
+ // Nothing was selected
+ if (index < 0) {
+ return null;
+ }
+
+ // Loop through all the selected options
+ for (var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++) {
+ var option = options[i];
+
+ // Don't return options that are disabled or in a disabled optgroup
+ if (option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
+ (!option.parentNode.disabled || !jQuery.nodeName(option.parentNode, "optgroup"))) {
+
+ // Get the specific value for the option
+ value = jQuery(option).val();
+
+ // We don't need an array for one selects
+ if (one) {
+ return value;
+ }
+
+ // Multi-Selects return an array
+ values.push(value);
+ }
+ }
+
+ return values;
+ }
+
+ // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
+ if (rradiocheck.test(elem.type) && !jQuery.support.checkOn) {
+ return elem.getAttribute("value") === null ? "on" : elem.value;
+ }
+
+
+ // Everything else, we just grab the value
+ return (elem.value || "").replace(rreturn, "");
+
+ }
+
+ return undefined;
+ }
+
+ var isFunction = jQuery.isFunction(value);
+
+ return this.each(function (i) {
+ var self = jQuery(this), val = value;
+
+ if (this.nodeType !== 1) {
+ return;
+ }
+
+ if (isFunction) {
+ val = value.call(this, i, self.val());
+ }
+
+ // Treat null/undefined as ""; convert numbers to string
+ if (val == null) {
+ val = "";
+ } else if (typeof val === "number") {
+ val += "";
+ } else if (jQuery.isArray(val)) {
+ val = jQuery.map(val, function (value) {
+ return value == null ? "" : value + "";
+ });
+ }
+
+ if (jQuery.isArray(val) && rradiocheck.test(this.type)) {
+ this.checked = jQuery.inArray(self.val(), val) >= 0;
+
+ } else if (jQuery.nodeName(this, "select")) {
+ var values = jQuery.makeArray(val);
+
+ jQuery("option", this).each(function () {
+ this.selected = jQuery.inArray(jQuery(this).val(), values) >= 0;
+ });
+
+ if (!values.length) {
+ this.selectedIndex = -1;
+ }
+
+ } else {
+ this.value = val;
+ }
+ });
+ }
+ });
+
+ jQuery.extend({
+ attrFn: {
+ val: true,
+ css: true,
+ html: true,
+ text: true,
+ data: true,
+ width: true,
+ height: true,
+ offset: true
+ },
+
+ attr: function (elem, name, value, pass) {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ // don't set attributes on text and comment nodes
+ if (!elem || elem.nodeType === 3 || elem.nodeType === 8) {
+ return undefined;
+ }
+
+ if (pass && name in jQuery.attrFn) {
+ return jQuery(elem)[name](value);
+ }
+
+ var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc(elem),
+ // Whether we are setting (or getting)
+ set = value !== undefined;
+
+ // Try to normalize/fix the name
+ name = notxml && jQuery.props[name] || name;
+
+ // These attributes require special treatment
+ var special = rspecialurl.test(name);
+
+ // Safari mis-reports the default selected property of an option
+ // Accessing the parent's selectedIndex property fixes it
+ if (name === "selected" && !jQuery.support.optSelected) {
+ var parent = elem.parentNode;
+ if (parent) {
+ parent.selectedIndex;
+
+ // Make sure that it also works with optgroups, see #5701
+ if (parent.parentNode) {
+ parent.parentNode.selectedIndex;
+ }
+ }
+ }
+
+ // If applicable, access the attribute via the DOM 0 way
+ // 'in' checks fail in Blackberry 4.7 #6931
+ if ((name in elem || elem[name] !== undefined) && notxml && !special) {
+ if (set) {
+ // We can't allow the type property to be changed (since it causes problems in IE)
+ if (name === "type" && rtype.test(elem.nodeName) && elem.parentNode) {
+ jQuery.error("type property can't be changed");
+ }
+
+ if (value === null) {
+ if (elem.nodeType === 1) {
+ elem.removeAttribute(name);
+ }
+
+ } else {
+ elem[name] = value;
+ }
+ }
+
+ // browsers index elements by id/name on forms, give priority to attributes.
+ if (jQuery.nodeName(elem, "form") && elem.getAttributeNode(name)) {
+ return elem.getAttributeNode(name).nodeValue;
+ }
+
+ // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
+ // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+ if (name === "tabIndex") {
+ var attributeNode = elem.getAttributeNode("tabIndex");
+
+ return attributeNode && attributeNode.specified ?
+ attributeNode.value :
+ rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href ?
+ 0 :
+ undefined;
+ }
+
+ return elem[name];
+ }
+
+ if (!jQuery.support.style && notxml && name === "style") {
+ if (set) {
+ elem.style.cssText = "" + value;
+ }
+
+ return elem.style.cssText;
+ }
+
+ if (set) {
+ // convert the value to a string (all browsers do this but IE) see #1070
+ elem.setAttribute(name, "" + value);
+ }
+
+ // Ensure that missing attributes return undefined
+ // Blackberry 4.7 returns "" from getAttribute #6938
+ if (!elem.attributes[name] && (elem.hasAttribute && !elem.hasAttribute(name))) {
+ return undefined;
+ }
+
+ var attr = !jQuery.support.hrefNormalized && notxml && special ?
+ // Some attributes require a special call on IE
+ elem.getAttribute(name, 2) :
+ elem.getAttribute(name);
+
+ // Non-existent attributes return null, we normalize to undefined
+ return attr === null ? undefined : attr;
+ }
+ });
+
+
+
+
+ var rnamespaces = /\.(.*)$/,
+ rformElems = /^(?:textarea|input|select)$/i,
+ rperiod = /\./g,
+ rspace = / /g,
+ rescape = /[^\w\s.|`]/g,
+ fcleanup = function (nm) {
+ return nm.replace(rescape, "\\$&");
+ },
+ focusCounts = { focusin: 0, focusout: 0 };
+
+ /*
+ * A number of helper functions used for managing events.
+ * Many of the ideas behind this code originated from
+ * Dean Edwards' addEvent library.
+ */
+ jQuery.event = {
+
+ // Bind an event to an element
+ // Original by Dean Edwards
+ add: function (elem, types, handler, data) {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ if (elem.nodeType === 3 || elem.nodeType === 8) {
+ return;
+ }
+
+ // For whatever reason, IE has trouble passing the window object
+ // around, causing it to be cloned in the process
+ if (jQuery.isWindow(elem) && (elem !== window && !elem.frameElement)) {
+ elem = window;
+ }
+
+ if (handler === false) {
+ handler = returnFalse;
+ } else if (!handler) {
+ // Fixes bug #7229. Fix recommended by jdalton
+ return;
+ }
+
+ var handleObjIn, handleObj;
+
+ if (handler.handler) {
+ handleObjIn = handler;
+ handler = handleObjIn.handler;
+ }
+
+ // Make sure that the function being executed has a unique ID
+ if (!handler.guid) {
+ handler.guid = jQuery.guid++;
+ }
+
+ // Init the element's event structure
+ var elemData = jQuery.data(elem);
+
+ // If no elemData is found then we must be trying to bind to one of the
+ // banned noData elements
+ if (!elemData) {
+ return;
+ }
+
+ // Use a key less likely to result in collisions for plain JS objects.
+ // Fixes bug #7150.
+ var eventKey = elem.nodeType ? "events" : "__events__",
+ events = elemData[eventKey],
+ eventHandle = elemData.handle;
+
+ if (typeof events === "function") {
+ // On plain objects events is a fn that holds the the data
+ // which prevents this data from being JSON serialized
+ // the function does not need to be called, it just contains the data
+ eventHandle = events.handle;
+ events = events.events;
+
+ } else if (!events) {
+ if (!elem.nodeType) {
+ // On plain objects, create a fn that acts as the holder
+ // of the values to avoid JSON serialization of event data
+ elemData[eventKey] = elemData = function () { };
+ }
+
+ elemData.events = events = {};
+ }
+
+ if (!eventHandle) {
+ elemData.handle = eventHandle = function () {
+ // Handle the second event of a trigger and when
+ // an event is called after a page has unloaded
+ return typeof jQuery !== "undefined" && !jQuery.event.triggered ?
+ jQuery.event.handle.apply(eventHandle.elem, arguments) :
+ undefined;
+ };
+ }
+
+ // Add elem as a property of the handle function
+ // This is to prevent a memory leak with non-native events in IE.
+ eventHandle.elem = elem;
+
+ // Handle multiple events separated by a space
+ // jQuery(...).bind("mouseover mouseout", fn);
+ types = types.split(" ");
+
+ var type, i = 0, namespaces;
+
+ while ((type = types[i++])) {
+ handleObj = handleObjIn ?
+ jQuery.extend({}, handleObjIn) :
+ { handler: handler, data: data };
+
+ // Namespaced event handlers
+ if (type.indexOf(".") > -1) {
+ namespaces = type.split(".");
+ type = namespaces.shift();
+ handleObj.namespace = namespaces.slice(0).sort().join(".");
+
+ } else {
+ namespaces = [];
+ handleObj.namespace = "";
+ }
+
+ handleObj.type = type;
+ if (!handleObj.guid) {
+ handleObj.guid = handler.guid;
+ }
+
+ // Get the current list of functions bound to this event
+ var handlers = events[type],
+ special = jQuery.event.special[type] || {};
+
+ // Init the event handler queue
+ if (!handlers) {
+ handlers = events[type] = [];
+
+ // Check for a special event handler
+ // Only use addEventListener/attachEvent if the special
+ // events handler returns false
+ if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {
+ // Bind the global event handler to the element
+ if (elem.addEventListener) {
+ elem.addEventListener(type, eventHandle, false);
+
+ } else if (elem.attachEvent) {
+ elem.attachEvent("on" + type, eventHandle);
+ }
+ }
+ }
+
+ if (special.add) {
+ special.add.call(elem, handleObj);
+
+ if (!handleObj.handler.guid) {
+ handleObj.handler.guid = handler.guid;
+ }
+ }
+
+ // Add the function to the element's handler list
+ handlers.push(handleObj);
+
+ // Keep track of which events have been used, for global triggering
+ jQuery.event.global[type] = true;
+ }
+
+ // Nullify elem to prevent memory leaks in IE
+ elem = null;
+ },
+
+ global: {},
+
+ // Detach an event or set of events from an element
+ remove: function (elem, types, handler) {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ // don't do events on text and comment nodes
+ if (elem.nodeType === 3 || elem.nodeType === 8) {
+ return;
+ }
+
+ if (handler === false) {
+ handler = returnFalse;
+ }
+
+ var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType,
+ eventKey = elem.nodeType ? "events" : "__events__",
+ elemData = jQuery.data(elem),
+ events = elemData && elemData[eventKey];
+
+ if (!elemData || !events) {
+ return;
+ }
+
+ if (typeof events === "function") {
+ elemData = events;
+ events = events.events;
+ }
+
+ // types is actually an event object here
+ if (types && types.type) {
+ handler = types.handler;
+ types = types.type;
+ }
+
+ // Unbind all events for the element
+ if (!types || typeof types === "string" && types.charAt(0) === ".") {
+ types = types || "";
+
+ for (type in events) {
+ jQuery.event.remove(elem, type + types);
+ }
+
+ return;
+ }
+
+ // Handle multiple events separated by a space
+ // jQuery(...).unbind("mouseover mouseout", fn);
+ types = types.split(" ");
+
+ while ((type = types[i++])) {
+ origType = type;
+ handleObj = null;
+ all = type.indexOf(".") < 0;
+ namespaces = [];
+
+ if (!all) {
+ // Namespaced event handlers
+ namespaces = type.split(".");
+ type = namespaces.shift();
+
+ namespace = new RegExp("(^|\\.)" +
+ jQuery.map(namespaces.slice(0).sort(), fcleanup).join("\\.(?:.*\\.)?") + "(\\.|$)");
+ }
+
+ eventType = events[type];
+
+ if (!eventType) {
+ continue;
+ }
+
+ if (!handler) {
+ for (j = 0; j < eventType.length; j++) {
+ handleObj = eventType[j];
+
+ if (all || namespace.test(handleObj.namespace)) {
+ jQuery.event.remove(elem, origType, handleObj.handler, j);
+ eventType.splice(j--, 1);
+ }
+ }
+
+ continue;
+ }
+
+ special = jQuery.event.special[type] || {};
+
+ for (j = pos || 0; j < eventType.length; j++) {
+ handleObj = eventType[j];
+
+ if (handler.guid === handleObj.guid) {
+ // remove the given handler for the given type
+ if (all || namespace.test(handleObj.namespace)) {
+ if (pos == null) {
+ eventType.splice(j--, 1);
+ }
+
+ if (special.remove) {
+ special.remove.call(elem, handleObj);
+ }
+ }
+
+ if (pos != null) {
+ break;
+ }
+ }
+ }
+
+ // remove generic event handler if no more handlers exist
+ if (eventType.length === 0 || pos != null && eventType.length === 1) {
+ if (!special.teardown || special.teardown.call(elem, namespaces) === false) {
+ jQuery.removeEvent(elem, type, elemData.handle);
+ }
+
+ ret = null;
+ delete events[type];
+ }
+ }
+
+ // Remove the expando if it's no longer used
+ if (jQuery.isEmptyObject(events)) {
+ var handle = elemData.handle;
+ if (handle) {
+ handle.elem = null;
+ }
+
+ delete elemData.events;
+ delete elemData.handle;
+
+ if (typeof elemData === "function") {
+ jQuery.removeData(elem, eventKey);
+
+ } else if (jQuery.isEmptyObject(elemData)) {
+ jQuery.removeData(elem);
+ }
+ }
+ },
+
+ // bubbling is internal
+ trigger: function (event, data, elem /*, bubbling */) {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ // Event object or event type
+ var type = event.type || event,
+ bubbling = arguments[3];
+
+ if (!bubbling) {
+ event = typeof event === "object" ?
+ // jQuery.Event object
+ event[jQuery.expando] ? event :
+ // Object literal
+ jQuery.extend(jQuery.Event(type), event) :
+ // Just the event type (string)
+ jQuery.Event(type);
+
+ if (type.indexOf("!") >= 0) {
+ event.type = type = type.slice(0, -1);
+ event.exclusive = true;
+ }
+
+ // Handle a global trigger
+ if (!elem) {
+ // Don't bubble custom events when global (to avoid too much overhead)
+ event.stopPropagation();
+
+ // Only trigger if we've ever bound an event for it
+ if (jQuery.event.global[type]) {
+ jQuery.each(jQuery.cache, function () {
+ if (this.events && this.events[type]) {
+ jQuery.event.trigger(event, data, this.handle.elem);
+ }
+ });
+ }
+ }
+
+ // Handle triggering a single element
+
+ // don't do events on text and comment nodes
+ if (!elem || elem.nodeType === 3 || elem.nodeType === 8) {
+ return undefined;
+ }
+
+ // Clean up in case it is reused
+ event.result = undefined;
+ event.target = elem;
+
+ // Clone the incoming data, if any
+ data = jQuery.makeArray(data);
+ data.unshift(event);
+ }
+
+ event.currentTarget = elem;
+
+ // Trigger the event, it is assumed that "handle" is a function
+ var handle = elem.nodeType ?
+ jQuery.data(elem, "handle") :
+ (jQuery.data(elem, "__events__") || {}).handle;
+
+ if (handle) {
+ handle.apply(elem, data);
+ }
+
+ var parent = elem.parentNode || elem.ownerDocument;
+
+ // Trigger an inline bound script
+ try {
+ if (!(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()])) {
+ if (elem["on" + type] && elem["on" + type].apply(elem, data) === false) {
+ event.result = false;
+ event.preventDefault();
+ }
+ }
+
+ // prevent IE from throwing an error for some elements with some event types, see #3533
+ } catch (inlineError) { }
+
+ if (!event.isPropagationStopped() && parent) {
+ jQuery.event.trigger(event, data, parent, true);
+
+ } else if (!event.isDefaultPrevented()) {
+ var old,
+ target = event.target,
+ targetType = type.replace(rnamespaces, ""),
+ isClick = jQuery.nodeName(target, "a") && targetType === "click",
+ special = jQuery.event.special[targetType] || {};
+
+ if ((!special._default || special._default.call(elem, event) === false) &&
+ !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()])) {
+
+ try {
+ if (target[targetType]) {
+ // Make sure that we don't accidentally re-trigger the onFOO events
+ old = target["on" + targetType];
+
+ if (old) {
+ target["on" + targetType] = null;
+ }
+
+ jQuery.event.triggered = true;
+ target[targetType]();
+ }
+
+ // prevent IE from throwing an error for some elements with some event types, see #3533
+ } catch (triggerError) { }
+
+ if (old) {
+ target["on" + targetType] = old;
+ }
+
+ jQuery.event.triggered = false;
+ }
+ }
+ },
+
+ handle: function (event) {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ var all, handlers, namespaces, namespace_re, events,
+ namespace_sort = [],
+ args = jQuery.makeArray(arguments);
+
+ event = args[0] = jQuery.event.fix(event || window.event);
+ event.currentTarget = this;
+
+ // Namespaced event handlers
+ all = event.type.indexOf(".") < 0 && !event.exclusive;
+
+ if (!all) {
+ namespaces = event.type.split(".");
+ event.type = namespaces.shift();
+ namespace_sort = namespaces.slice(0).sort();
+ namespace_re = new RegExp("(^|\\.)" + namespace_sort.join("\\.(?:.*\\.)?") + "(\\.|$)");
+ }
+
+ event.namespace = event.namespace || namespace_sort.join(".");
+
+ events = jQuery.data(this, this.nodeType ? "events" : "__events__");
+
+ if (typeof events === "function") {
+ events = events.events;
+ }
+
+ handlers = (events || {})[event.type];
+
+ if (events && handlers) {
+ // Clone the handlers to prevent manipulation
+ handlers = handlers.slice(0);
+
+ for (var j = 0, l = handlers.length; j < l; j++) {
+ var handleObj = handlers[j];
+
+ // Filter the functions by class
+ if (all || namespace_re.test(handleObj.namespace)) {
+ // Pass in a reference to the handler function itself
+ // So that we can later remove it
+ event.handler = handleObj.handler;
+ event.data = handleObj.data;
+ event.handleObj = handleObj;
+
+ var ret = handleObj.handler.apply(this, args);
+
+ if (ret !== undefined) {
+ event.result = ret;
+ if (ret === false) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+
+ if (event.isImmediatePropagationStopped()) {
+ break;
+ }
+ }
+ }
+ }
+
+ return event.result;
+ },
+
+ props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+
+ fix: function (event) {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ if (event[jQuery.expando]) {
+ return event;
+ }
+
+ // store a copy of the original event object
+ // and "clone" to set read-only properties
+ var originalEvent = event;
+ event = jQuery.Event(originalEvent);
+
+ for (var i = this.props.length, prop; i; ) {
+ prop = this.props[--i];
+ event[prop] = originalEvent[prop];
+ }
+
+ // Fix target property, if necessary
+ if (!event.target) {
+ // Fixes #1925 where srcElement might not be defined either
+ event.target = event.srcElement || document;
+ }
+
+ // check if target is a textnode (safari)
+ if (event.target.nodeType === 3) {
+ event.target = event.target.parentNode;
+ }
+
+ // Add relatedTarget, if necessary
+ if (!event.relatedTarget && event.fromElement) {
+ event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;
+ }
+
+ // Calculate pageX/Y if missing and clientX/Y available
+ if (event.pageX == null && event.clientX != null) {
+ var doc = document.documentElement,
+ body = document.body;
+
+ event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
+ event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
+ }
+
+ // Add which for key events
+ if (event.which == null && (event.charCode != null || event.keyCode != null)) {
+ event.which = event.charCode != null ? event.charCode : event.keyCode;
+ }
+
+ // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
+ if (!event.metaKey && event.ctrlKey) {
+ event.metaKey = event.ctrlKey;
+ }
+
+ // Add which for click: 1 === left; 2 === middle; 3 === right
+ // Note: button is not normalized, so don't use it
+ if (!event.which && event.button !== undefined) {
+ event.which = (event.button & 1 ? 1 : (event.button & 2 ? 3 : (event.button & 4 ? 2 : 0)));
+ }
+
+ return event;
+ },
+
+ // Deprecated, use jQuery.guid instead
+ guid: 1E8,
+
+ // Deprecated, use jQuery.proxy instead
+ proxy: jQuery.proxy,
+
+ special: {
+ ready: {
+ // Make sure the ready event is setup
+ setup: jQuery.bindReady,
+ teardown: jQuery.noop
+ },
+
+ live: {
+ add: function (handleObj) {
+ jQuery.event.add(this,
+ liveConvert(handleObj.origType, handleObj.selector),
+ jQuery.extend({}, handleObj, { handler: liveHandler, guid: handleObj.handler.guid }));
+ },
+
+ remove: function (handleObj) {
+ jQuery.event.remove(this, liveConvert(handleObj.origType, handleObj.selector), handleObj);
+ }
+ },
+
+ beforeunload: {
+ setup: function (data, namespaces, eventHandle) {
+ // We only want to do this special case on windows
+ if (jQuery.isWindow(this)) {
+ this.onbeforeunload = eventHandle;
+ }
+ },
+
+ teardown: function (namespaces, eventHandle) {
+ if (this.onbeforeunload === eventHandle) {
+ this.onbeforeunload = null;
+ }
+ }
+ }
+ }
+ };
+
+ jQuery.removeEvent = document.removeEventListener ?
+ function (elem, type, handle) {
+ if (elem.removeEventListener) {
+ elem.removeEventListener(type, handle, false);
+ }
+ } :
+ function (elem, type, handle) {
+ if (elem.detachEvent) {
+ elem.detachEvent("on" + type, handle);
+ }
+ };
+
+ jQuery.Event = function (src) {
+ // Allow instantiation without the 'new' keyword
+ if (!this.preventDefault) {
+ return new jQuery.Event(src);
+ }
+
+ // Event object
+ if (src && src.type) {
+ this.originalEvent = src;
+ this.type = src.type;
+ // Event type
+ } else {
+ this.type = src;
+ }
+
+ // timeStamp is buggy for some events on Firefox(#3843)
+ // So we won't rely on the native value
+ this.timeStamp = jQuery.now();
+
+ // Mark it as fixed
+ this[jQuery.expando] = true;
+ };
+
+ function returnFalse() {
+ return false;
+ }
+ function returnTrue() {
+ return true;
+ }
+
+ // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+ // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+ jQuery.Event.prototype = {
+ preventDefault: function () {
+ this.isDefaultPrevented = returnTrue;
+
+ var e = this.originalEvent;
+ if (!e) {
+ return;
+ }
+
+ // if preventDefault exists run it on the original event
+ if (e.preventDefault) {
+ e.preventDefault();
+
+ // otherwise set the returnValue property of the original event to false (IE)
+ } else {
+ e.returnValue = false;
+ }
+ },
+ stopPropagation: function () {
+ this.isPropagationStopped = returnTrue;
+
+ var e = this.originalEvent;
+ if (!e) {
+ return;
+ }
+ // if stopPropagation exists run it on the original event
+ if (e.stopPropagation) {
+ e.stopPropagation();
+ }
+ // otherwise set the cancelBubble property of the original event to true (IE)
+ e.cancelBubble = true;
+ },
+ stopImmediatePropagation: function () {
+ this.isImmediatePropagationStopped = returnTrue;
+ this.stopPropagation();
+ },
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse
+ };
+
+ // Checks if an event happened on an element within another element
+ // Used in jQuery.event.special.mouseenter and mouseleave handlers
+ var withinElement = function (event) {
+ // Check if mouse(over|out) are still within the same parent element
+ var parent = event.relatedTarget;
+
+ // Firefox sometimes assigns relatedTarget a XUL element
+ // which we cannot access the parentNode property of
+ try {
+ // Traverse up the tree
+ while (parent && parent !== this) {
+ parent = parent.parentNode;
+ }
+
+ if (parent !== this) {
+ // set the correct event type
+ event.type = event.data;
+
+ // handle event if we actually just moused on to a non sub-element
+ jQuery.event.handle.apply(this, arguments);
+ }
+
+ // assuming we've left the element since we most likely mousedover a xul element
+ } catch (e) { }
+ },
+
+ // In case of event delegation, we only need to rename the event.type,
+ // liveHandler will take care of the rest.
+delegate = function (event) {
+ event.type = event.data;
+ jQuery.event.handle.apply(this, arguments);
+};
+
+ // Create mouseenter and mouseleave events
+ jQuery.each({
+ mouseenter: "mouseover",
+ mouseleave: "mouseout"
+ }, function (orig, fix) {
+ jQuery.event.special[orig] = {
+ setup: function (data) {
+ jQuery.event.add(this, fix, data && data.selector ? delegate : withinElement, orig);
+ },
+ teardown: function (data) {
+ jQuery.event.remove(this, fix, data && data.selector ? delegate : withinElement);
+ }
+ };
+ });
+
+ // submit delegation
+ if (!jQuery.support.submitBubbles) {
+
+ jQuery.event.special.submit = {
+ setup: function (data, namespaces) {
+ if (this.nodeName.toLowerCase() !== "form") {
+ jQuery.event.add(this, "click.specialSubmit", function (e) {
+ var elem = e.target,
+ type = elem.type;
+
+ if ((type === "submit" || type === "image") && jQuery(elem).closest("form").length) {
+ e.liveFired = undefined;
+ return trigger("submit", this, arguments);
+ }
+ });
+
+ jQuery.event.add(this, "keypress.specialSubmit", function (e) {
+ var elem = e.target,
+ type = elem.type;
+
+ if ((type === "text" || type === "password") && jQuery(elem).closest("form").length && e.keyCode === 13) {
+ e.liveFired = undefined;
+ return trigger("submit", this, arguments);
+ }
+ });
+
+ } else {
+ return false;
+ }
+ },
+
+ teardown: function (namespaces) {
+ jQuery.event.remove(this, ".specialSubmit");
+ }
+ };
+
+ }
+
+ // change delegation, happens here so we have bind.
+ if (!jQuery.support.changeBubbles) {
+
+ var changeFilters,
+
+ getVal = function (elem) {
+ var type = elem.type, val = elem.value;
+
+ if (type === "radio" || type === "checkbox") {
+ val = elem.checked;
+
+ } else if (type === "select-multiple") {
+ val = elem.selectedIndex > -1 ?
+ jQuery.map(elem.options, function (elem) {
+ return elem.selected;
+ }).join("-") :
+ "";
+
+ } else if (elem.nodeName.toLowerCase() === "select") {
+ val = elem.selectedIndex;
+ }
+
+ return val;
+ },
+
+ testChange = function testChange(e) {
+ var elem = e.target, data, val;
+
+ if (!rformElems.test(elem.nodeName) || elem.readOnly) {
+ return;
+ }
+
+ data = jQuery.data(elem, "_change_data");
+ val = getVal(elem);
+
+ // the current data will be also retrieved by beforeactivate
+ if (e.type !== "focusout" || elem.type !== "radio") {
+ jQuery.data(elem, "_change_data", val);
+ }
+
+ if (data === undefined || val === data) {
+ return;
+ }
+
+ if (data != null || val) {
+ e.type = "change";
+ e.liveFired = undefined;
+ return jQuery.event.trigger(e, arguments[1], elem);
+ }
+ };
+
+ jQuery.event.special.change = {
+ filters: {
+ focusout: testChange,
+
+ beforedeactivate: testChange,
+
+ click: function (e) {
+ var elem = e.target, type = elem.type;
+
+ if (type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select") {
+ return testChange.call(this, e);
+ }
+ },
+
+ // Change has to be called before submit
+ // Keydown will be called before keypress, which is used in submit-event delegation
+ keydown: function (e) {
+ var elem = e.target, type = elem.type;
+
+ if ((e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") ||
+ (e.keyCode === 32 && (type === "checkbox" || type === "radio")) ||
+ type === "select-multiple") {
+ return testChange.call(this, e);
+ }
+ },
+
+ // Beforeactivate happens also before the previous element is blurred
+ // with this event you can't trigger a change event, but you can store
+ // information
+ beforeactivate: function (e) {
+ var elem = e.target;
+ jQuery.data(elem, "_change_data", getVal(elem));
+ }
+ },
+
+ setup: function (data, namespaces) {
+ if (this.type === "file") {
+ return false;
+ }
+
+ for (var type in changeFilters) {
+ jQuery.event.add(this, type + ".specialChange", changeFilters[type]);
+ }
+
+ return rformElems.test(this.nodeName);
+ },
+
+ teardown: function (namespaces) {
+ jQuery.event.remove(this, ".specialChange");
+
+ return rformElems.test(this.nodeName);
+ }
+ };
+
+ changeFilters = jQuery.event.special.change.filters;
+
+ // Handle when the input is .focus()'d
+ changeFilters.focus = changeFilters.beforeactivate;
+ }
+
+ function trigger(type, elem, args) {
+ args[0].type = type;
+ return jQuery.event.handle.apply(elem, args);
+ }
+
+ // Create "bubbling" focus and blur events
+ if (document.addEventListener) {
+ jQuery.each({ focus: "focusin", blur: "focusout" }, function (orig, fix) {
+ jQuery.event.special[fix] = {
+ setup: function () {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ if (focusCounts[fix]++ === 0) {
+ document.addEventListener(orig, handler, true);
+ }
+ },
+ teardown: function () {
+ ///
+ ///
This method is internal.
+ ///
+ ///
+
+ if (--focusCounts[fix] === 0) {
+ document.removeEventListener(orig, handler, true);
+ }
+ }
+ };
+
+ function handler(e) {
+ e = jQuery.event.fix(e);
+ e.type = fix;
+ return jQuery.event.trigger(e, null, e.target);
+ }
+ });
+ }
+
+ // jQuery.each(["bind", "one"], function( i, name ) {
+ // jQuery.fn[ name ] = function( type, data, fn ) {
+ // // Handle object literals
+ // if ( typeof type === "object" ) {
+ // for ( var key in type ) {
+ // this[ name ](key, data, type[key], fn);
+ // }
+ // return this;
+ // }
+
+ // if ( jQuery.isFunction( data ) || data === false ) {
+ // fn = data;
+ // data = undefined;
+ // }
+
+ // var handler = name === "one" ? jQuery.proxy( fn, function( event ) {
+ // jQuery( this ).unbind( event, handler );
+ // return fn.apply( this, arguments );
+ // }) : fn;
+
+ // if ( type === "unload" && name !== "one" ) {
+ // this.one( type, data, fn );
+
+ // } else {
+ // for ( var i = 0, l = this.length; i < l; i++ ) {
+ // jQuery.event.add( this[i], type, handler, data );
+ // }
+ // }
+
+ // return this;
+ // };
+ // });
+
+ jQuery.fn["bind"] = function (type, data, fn) {
+ ///
+ ///
Binds a handler to one or more events for each matched element. Can also bind custom events.
+ ///
+ /// One or more event types separated by a space. Built-in event type values are: blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error .
+ /// Additional data passed to the event handler as event.data
+ /// A function to bind to the event on each of the set of matched elements. function callback(eventObject) such that this corresponds to the dom element.
+
+ // Handle object literals
+ if (typeof type === "object") {
+ for (var key in type) {
+ this["bind"](key, data, type[key], fn);
+ }
+ return this;
+ }
+
+ if (jQuery.isFunction(data)) {
+ fn = data;
+ data = undefined;
+ }
+
+ var handler = "bind" === "one" ? jQuery.proxy(fn, function (event) {
+ jQuery(this).unbind(event, handler);
+ return fn.apply(this, arguments);
+ }) : fn;
+
+ return type === "unload" && "bind" !== "one" ?
+ this.one(type, data, fn) :
+ this.each(function () {
+ jQuery.event.add(this, type, handler, data);
+ });
+ };
+
+ jQuery.fn["one"] = function (type, data, fn) {
+ ///
+ ///
Binds a handler to one or more events to be executed exactly once for each matched element.
+ ///
+ /// One or more event types separated by a space. Built-in event type values are: blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error .
+ /// Additional data passed to the event handler as event.data
+ /// A function to bind to the event on each of the set of matched elements. function callback(eventObject) such that this corresponds to the dom element.
+
+ // Handle object literals
+ if (typeof type === "object") {
+ for (var key in type) {
+ this["one"](key, data, type[key], fn);
+ }
+ return this;
+ }
+
+ if (jQuery.isFunction(data)) {
+ fn = data;
+ data = undefined;
+ }
+
+ var handler = "one" === "one" ? jQuery.proxy(fn, function (event) {
+ jQuery(this).unbind(event, handler);
+ return fn.apply(this, arguments);
+ }) : fn;
+
+ return type === "unload" && "one" !== "one" ?
+ this.one(type, data, fn) :
+ this.each(function () {
+ jQuery.event.add(this, type, handler, data);
+ });
+ };
+
+ jQuery.fn.extend({
+ unbind: function (type, fn) {
+ ///
+ ///
Unbinds a handler from one or more events for each matched element.
+ ///
+ /// One or more event types separated by a space. Built-in event type values are: blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error .
+ /// A function to bind to the event on each of the set of matched elements. function callback(eventObject) such that this corresponds to the dom element.
+
+ // Handle object literals
+ if (typeof type === "object" && !type.preventDefault) {
+ for (var key in type) {
+ this.unbind(key, type[key]);
+ }
+
+ } else {
+ for (var i = 0, l = this.length; i < l; i++) {
+ jQuery.event.remove(this[i], type, fn);
+ }
+ }
+
+ return this;
+ },
+
+ delegate: function (selector, types, data, fn) {
+ return this.live(types, data, fn, selector);
+ },
+
+ undelegate: function (selector, types, fn) {
+ if (arguments.length === 0) {
+ return this.unbind("live");
+
+ } else {
+ return this.die(types, null, fn, selector);
+ }
+ },
+
+ trigger: function (type, data) {
+ ///
+ ///
Triggers a type of event on every matched element.
+ ///
+ /// One or more event types separated by a space. Built-in event type values are: blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error .
+ /// Additional data passed to the event handler as additional arguments.
+ /// This parameter is undocumented.
+
+ return this.each(function () {
+ jQuery.event.trigger(type, data, this);
+ });
+ },
+
+ triggerHandler: function (type, data) {
+ ///
+ ///
Triggers all bound event handlers on an element for a specific event type without executing the browser's default actions.
+ ///
+ /// One or more event types separated by a space. Built-in event type values are: blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error .
+ /// Additional data passed to the event handler as additional arguments.
+ /// This parameter is undocumented.
+
+ if (this[0]) {
+ var event = jQuery.Event(type);
+ event.preventDefault();
+ event.stopPropagation();
+ jQuery.event.trigger(event, data, this[0]);
+ return event.result;
+ }
+ },
+
+ toggle: function (fn) {
+ ///
+ ///
Toggles among two or more function calls every other click.
+ ///
+ /// The functions among which to toggle execution
+
+ // Save reference to arguments for access in closure
+ var args = arguments,
+ i = 1;
+
+ // link all the functions, so any of them can unbind this click handler
+ while (i < args.length) {
+ jQuery.proxy(fn, args[i++]);
+ }
+
+ return this.click(jQuery.proxy(fn, function (event) {
+ // Figure out which function to execute
+ var lastToggle = (jQuery.data(this, "lastToggle" + fn.guid) || 0) % i;
+ jQuery.data(this, "lastToggle" + fn.guid, lastToggle + 1);
+
+ // Make sure that clicks stop
+ event.preventDefault();
+
+ // and execute the function
+ return args[lastToggle].apply(this, arguments) || false;
+ }));
+ },
+
+ hover: function (fnOver, fnOut) {
+ ///
+ ///
Simulates hovering (moving the mouse on or off of an object).
+ ///
+ /// The function to fire when the mouse is moved over a matched element.
+ /// The function to fire when the mouse is moved off of a matched element.
+
+ return this.mouseenter(fnOver).mouseleave(fnOut || fnOver);
+ }
+ });
+
+ var liveMap = {
+ focus: "focusin",
+ blur: "focusout",
+ mouseenter: "mouseover",
+ mouseleave: "mouseout"
+ };
+
+ // jQuery.each(["live", "die"], function( i, name ) {
+ // jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) {
+ // var type, i = 0, match, namespaces, preType,
+ // selector = origSelector || this.selector,
+ // context = origSelector ? this : jQuery( this.context );
+
+ // if ( typeof types === "object" && !types.preventDefault ) {
+ // for ( var key in types ) {
+ // context[ name ]( key, data, types[key], selector );
+ // }
+
+ // return this;
+ // }
+
+ // if ( jQuery.isFunction( data ) ) {
+ // fn = data;
+ // data = undefined;
+ // }
+
+ // types = (types || "").split(" ");
+
+ // while ( (type = types[ i++ ]) != null ) {
+ // match = rnamespaces.exec( type );
+ // namespaces = "";
+
+ // if ( match ) {
+ // namespaces = match[0];
+ // type = type.replace( rnamespaces, "" );
+ // }
+
+ // if ( type === "hover" ) {
+ // types.push( "mouseenter" + namespaces, "mouseleave" + namespaces );
+ // continue;
+ // }
+
+ // preType = type;
+
+ // if ( type === "focus" || type === "blur" ) {
+ // types.push( liveMap[ type ] + namespaces );
+ // type = type + namespaces;
+
+ // } else {
+ // type = (liveMap[ type ] || type) + namespaces;
+ // }
+
+ // if ( name === "live" ) {
+ // // bind live handler
+ // for ( var j = 0, l = context.length; j < l; j++ ) {
+ // jQuery.event.add( context[j], "live." + liveConvert( type, selector ),
+ // { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } );
+ // }
+
+ // } else {
+ // // unbind live handler
+ // context.unbind( "live." + liveConvert( type, selector ), fn );
+ // }
+ // }
+
+ // return this;
+ // };
+ // });
+
+ jQuery.fn["live"] = function (types, data, fn) {
+ ///
+ ///
Attach a handler to the event for all elements which match the current selector, now or
+ ///
in the future.
+ ///
+ ///
+ ///
A string containing a JavaScript event type, such as "click" or "keydown".
+ ///
+ ///
+ ///
A map of data that will be passed to the event handler.
+ ///
+ ///
+ ///
A function to execute at the time the event is triggered.
+ ///
+ ///
+
+ var type, i = 0;
+
+ if (jQuery.isFunction(data)) {
+ fn = data;
+ data = undefined;
+ }
+
+ types = (types || "").split(/\s+/);
+
+ while ((type = types[i++]) != null) {
+ type = type === "focus" ? "focusin" : // focus --> focusin
+ type === "blur" ? "focusout" : // blur --> focusout
+ type === "hover" ? types.push("mouseleave") && "mouseenter" : // hover support
+ type;
+
+ if ("live" === "live") {
+ // bind live handler
+ jQuery(this.context).bind(liveConvert(type, this.selector), {
+ data: data, selector: this.selector, live: type
+ }, fn);
+
+ } else {
+ // unbind live handler
+ jQuery(this.context).unbind(liveConvert(type, this.selector), fn ? { guid: fn.guid + this.selector + type} : null);
+ }
+ }
+
+ return this;
+ }
+
+ jQuery.fn["die"] = function (types, data, fn) {
+ ///
+ ///
Remove all event handlers previously attached using .live() from the elements.
+ ///
+ ///
+ ///
A string containing a JavaScript event type, such as click or keydown.
+ ///
+ ///
+ ///
The function that is to be no longer executed.
+ ///
+ ///
+
+ var type, i = 0;
+
+ if (jQuery.isFunction(data)) {
+ fn = data;
+ data = undefined;
+ }
+
+ types = (types || "").split(/\s+/);
+
+ while ((type = types[i++]) != null) {
+ type = type === "focus" ? "focusin" : // focus --> focusin
+ type === "blur" ? "focusout" : // blur --> focusout
+ type === "hover" ? types.push("mouseleave") && "mouseenter" : // hover support
+ type;
+
+ if ("die" === "live") {
+ // bind live handler
+ jQuery(this.context).bind(liveConvert(type, this.selector), {
+ data: data, selector: this.selector, live: type
+ }, fn);
+
+ } else {
+ // unbind live handler
+ jQuery(this.context).unbind(liveConvert(type, this.selector), fn ? { guid: fn.guid + this.selector + type} : null);
+ }
+ }
+
+ return this;
+ }
+
+ function liveHandler(event) {
+ var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret,
+ elems = [],
+ selectors = [],
+ events = jQuery.data(this, this.nodeType ? "events" : "__events__");
+
+ if (typeof events === "function") {
+ events = events.events;
+ }
+
+ // Make sure we avoid non-left-click bubbling in Firefox (#3861)
+ if (event.liveFired === this || !events || !events.live || event.button && event.type === "click") {
+ return;
+ }
+
+ if (event.namespace) {
+ namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)");
+ }
+
+ event.liveFired = this;
+
+ var live = events.live.slice(0);
+
+ for (j = 0; j < live.length; j++) {
+ handleObj = live[j];
+
+ if (handleObj.origType.replace(rnamespaces, "") === event.type) {
+ selectors.push(handleObj.selector);
+
+ } else {
+ live.splice(j--, 1);
+ }
+ }
+
+ match = jQuery(event.target).closest(selectors, event.currentTarget);
+
+ for (i = 0, l = match.length; i < l; i++) {
+ close = match[i];
+
+ for (j = 0; j < live.length; j++) {
+ handleObj = live[j];
+
+ if (close.selector === handleObj.selector && (!namespace || namespace.test(handleObj.namespace))) {
+ elem = close.elem;
+ related = null;
+
+ // Those two events require additional checking
+ if (handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave") {
+ event.type = handleObj.preType;
+ related = jQuery(event.relatedTarget).closest(handleObj.selector)[0];
+ }
+
+ if (!related || related !== elem) {
+ elems.push({ elem: elem, handleObj: handleObj, level: close.level });
+ }
+ }
+ }
+ }
+
+ for (i = 0, l = elems.length; i < l; i++) {
+ match = elems[i];
+
+ if (maxLevel && match.level > maxLevel) {
+ break;
+ }
+
+ event.currentTarget = match.elem;
+ event.data = match.handleObj.data;
+ event.handleObj = match.handleObj;
+
+ ret = match.handleObj.origHandler.apply(match.elem, arguments);
+
+ if (ret === false || event.isPropagationStopped()) {
+ maxLevel = match.level;
+
+ if (ret === false) {
+ stop = false;
+ }
+ if (event.isImmediatePropagationStopped()) {
+ break;
+ }
+ }
+ }
+
+ return stop;
+ }
+
+ function liveConvert(type, selector) {
+ return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspace, "&");
+ }
+
+ // jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
+ // "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+ // "change select submit keydown keypress keyup error").split(" "), function( i, name ) {
+
+ // // Handle event binding
+ // jQuery.fn[ name ] = function( data, fn ) {
+ // if ( fn == null ) {
+ // fn = data;
+ // data = null;
+ // }
+
+ // return arguments.length > 0 ?
+ // this.bind( name, data, fn ) :
+ // this.trigger( name );
+ // };
+
+ // if ( jQuery.attrFn ) {
+ // jQuery.attrFn[ name ] = true;
+ // }
+ // });
+
+ jQuery.fn["blur"] = function (fn) {
+ ///
+ ///
1: blur() - Triggers the blur event of each matched element.
+ ///
2: blur(fn) - Binds a function to the blur event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("blur", fn) : this.trigger("blur");
+ };
+
+ jQuery.fn["focus"] = function (fn) {
+ ///
+ ///
1: focus() - Triggers the focus event of each matched element.
+ ///
2: focus(fn) - Binds a function to the focus event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("focus", fn) : this.trigger("focus");
+ };
+
+ jQuery.fn["focusin"] = function (fn) {
+ ///
+ ///
Bind an event handler to the "focusin" JavaScript event.
+ ///
+ ///
+ ///
A function to execute each time the event is triggered.
+ ///
+ ///
+
+ return fn ? this.bind("focusin", fn) : this.trigger("focusin");
+ };
+
+ jQuery.fn["focusout"] = function (fn) {
+ ///
+ ///
Bind an event handler to the "focusout" JavaScript event.
+ ///
+ ///
+ ///
A function to execute each time the event is triggered.
+ ///
+ ///
+
+ return fn ? this.bind("focusout", fn) : this.trigger("focusout");
+ };
+
+ jQuery.fn["load"] = function (fn) {
+ ///
+ ///
1: load() - Triggers the load event of each matched element.
+ ///
2: load(fn) - Binds a function to the load event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("load", fn) : this.trigger("load");
+ };
+
+ jQuery.fn["resize"] = function (fn) {
+ ///
+ ///
1: resize() - Triggers the resize event of each matched element.
+ ///
2: resize(fn) - Binds a function to the resize event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("resize", fn) : this.trigger("resize");
+ };
+
+ jQuery.fn["scroll"] = function (fn) {
+ ///
+ ///
1: scroll() - Triggers the scroll event of each matched element.
+ ///
2: scroll(fn) - Binds a function to the scroll event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("scroll", fn) : this.trigger("scroll");
+ };
+
+ jQuery.fn["unload"] = function (fn) {
+ ///
+ ///
1: unload() - Triggers the unload event of each matched element.
+ ///
2: unload(fn) - Binds a function to the unload event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("unload", fn) : this.trigger("unload");
+ };
+
+ jQuery.fn["click"] = function (fn) {
+ ///
+ ///
1: click() - Triggers the click event of each matched element.
+ ///
2: click(fn) - Binds a function to the click event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("click", fn) : this.trigger("click");
+ };
+
+ jQuery.fn["dblclick"] = function (fn) {
+ ///
+ ///
1: dblclick() - Triggers the dblclick event of each matched element.
+ ///
2: dblclick(fn) - Binds a function to the dblclick event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("dblclick", fn) : this.trigger("dblclick");
+ };
+
+ jQuery.fn["mousedown"] = function (fn) {
+ ///
+ ///
Binds a function to the mousedown event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("mousedown", fn) : this.trigger("mousedown");
+ };
+
+ jQuery.fn["mouseup"] = function (fn) {
+ ///
+ ///
Bind a function to the mouseup event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("mouseup", fn) : this.trigger("mouseup");
+ };
+
+ jQuery.fn["mousemove"] = function (fn) {
+ ///
+ ///
Bind a function to the mousemove event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("mousemove", fn) : this.trigger("mousemove");
+ };
+
+ jQuery.fn["mouseover"] = function (fn) {
+ ///
+ ///
Bind a function to the mouseover event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("mouseover", fn) : this.trigger("mouseover");
+ };
+
+ jQuery.fn["mouseout"] = function (fn) {
+ ///
+ ///
Bind a function to the mouseout event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("mouseout", fn) : this.trigger("mouseout");
+ };
+
+ jQuery.fn["mouseenter"] = function (fn) {
+ ///
+ ///
Bind a function to the mouseenter event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("mouseenter", fn) : this.trigger("mouseenter");
+ };
+
+ jQuery.fn["mouseleave"] = function (fn) {
+ ///
+ ///
Bind a function to the mouseleave event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("mouseleave", fn) : this.trigger("mouseleave");
+ };
+
+ jQuery.fn["change"] = function (fn) {
+ ///
+ ///
1: change() - Triggers the change event of each matched element.
+ ///
2: change(fn) - Binds a function to the change event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("change", fn) : this.trigger("change");
+ };
+
+ jQuery.fn["select"] = function (fn) {
+ ///
+ ///
1: select() - Triggers the select event of each matched element.
+ ///
2: select(fn) - Binds a function to the select event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("select", fn) : this.trigger("select");
+ };
+
+ jQuery.fn["submit"] = function (fn) {
+ ///
+ ///
1: submit() - Triggers the submit event of each matched element.
+ ///
2: submit(fn) - Binds a function to the submit event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("submit", fn) : this.trigger("submit");
+ };
+
+ jQuery.fn["keydown"] = function (fn) {
+ ///
+ ///
1: keydown() - Triggers the keydown event of each matched element.
+ ///
2: keydown(fn) - Binds a function to the keydown event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("keydown", fn) : this.trigger("keydown");
+ };
+
+ jQuery.fn["keypress"] = function (fn) {
+ ///
+ ///
1: keypress() - Triggers the keypress event of each matched element.
+ ///
2: keypress(fn) - Binds a function to the keypress event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("keypress", fn) : this.trigger("keypress");
+ };
+
+ jQuery.fn["keyup"] = function (fn) {
+ ///
+ ///
1: keyup() - Triggers the keyup event of each matched element.
+ ///
2: keyup(fn) - Binds a function to the keyup event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("keyup", fn) : this.trigger("keyup");
+ };
+
+ jQuery.fn["error"] = function (fn) {
+ ///
+ ///
1: error() - Triggers the error event of each matched element.
+ ///
2: error(fn) - Binds a function to the error event of each matched element.
+ ///
+ /// The function to execute.
+ ///
+
+ return fn ? this.bind("error", fn) : this.trigger("error");
+ };
+
+ // Prevent memory leaks in IE
+ // Window isn't included so as not to unbind existing unload events
+ // More info:
+ // - http://isaacschlueter.com/2006/10/msie-memory-leaks/
+ if (window.attachEvent && !window.addEventListener) {
+ jQuery(window).bind("unload", function () {
+ for (var id in jQuery.cache) {
+ if (jQuery.cache[id].handle) {
+ // Try/Catch is to handle iframes being unloaded, see #4280
+ try {
+ jQuery.event.remove(jQuery.cache[id].handle.elem);
+ } catch (e) { }
+ }
+ }
+ });
+ }
+
+
+ (function () {
+
+ var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+ done = 0,
+ toString = Object.prototype.toString,
+ hasDuplicate = false,
+ baseHasDuplicate = true;
+
+ // Here we check if the JavaScript engine is using some sort of
+ // optimization where it does not always call our comparision
+ // function. If that is the case, discard the hasDuplicate value.
+ // Thus far that includes Google Chrome.
+ [0, 0].sort(function () {
+ baseHasDuplicate = false;
+ return 0;
+ });
+
+ var Sizzle = function (selector, context, results, seed) {
+ results = results || [];
+ context = context || document;
+
+ var origContext = context;
+
+ if (context.nodeType !== 1 && context.nodeType !== 9) {
+ return [];
+ }
+
+ if (!selector || typeof selector !== "string") {
+ return results;
+ }
+
+ var m, set, checkSet, extra, ret, cur, pop, i,
+ prune = true,
+ contextXML = Sizzle.isXML(context),
+ parts = [],
+ soFar = selector;
+
+ // Reset the position of the chunker regexp (start from head)
+ do {
+ chunker.exec("");
+ m = chunker.exec(soFar);
+
+ if (m) {
+ soFar = m[3];
+
+ parts.push(m[1]);
+
+ if (m[2]) {
+ extra = m[3];
+ break;
+ }
+ }
+ } while (m);
+
+ if (parts.length > 1 && origPOS.exec(selector)) {
+
+ if (parts.length === 2 && Expr.relative[parts[0]]) {
+ set = posProcess(parts[0] + parts[1], context);
+
+ } else {
+ set = Expr.relative[parts[0]] ?
+ [context] :
+ Sizzle(parts.shift(), context);
+
+ while (parts.length) {
+ selector = parts.shift();
+
+ if (Expr.relative[selector]) {
+ selector += parts.shift();
+ }
+
+ set = posProcess(selector, set);
+ }
+ }
+
+ } else {
+ // Take a shortcut and set the context if the root selector is an ID
+ // (but not if it'll be faster if the inner selector is an ID)
+ if (!seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
+ Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1])) {
+
+ ret = Sizzle.find(parts.shift(), context, contextXML);
+ context = ret.expr ?
+ Sizzle.filter(ret.expr, ret.set)[0] :
+ ret.set[0];
+ }
+
+ if (context) {
+ ret = seed ?
+ { expr: parts.pop(), set: makeArray(seed)} :
+ Sizzle.find(parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML);
+
+ set = ret.expr ?
+ Sizzle.filter(ret.expr, ret.set) :
+ ret.set;
+
+ if (parts.length > 0) {
+ checkSet = makeArray(set);
+
+ } else {
+ prune = false;
+ }
+
+ while (parts.length) {
+ cur = parts.pop();
+ pop = cur;
+
+ if (!Expr.relative[cur]) {
+ cur = "";
+ } else {
+ pop = parts.pop();
+ }
+
+ if (pop == null) {
+ pop = context;
+ }
+
+ Expr.relative[cur](checkSet, pop, contextXML);
+ }
+
+ } else {
+ checkSet = parts = [];
+ }
+ }
+
+ if (!checkSet) {
+ checkSet = set;
+ }
+
+ if (!checkSet) {
+ Sizzle.error(cur || selector);
+ }
+
+ if (toString.call(checkSet) === "[object Array]") {
+ if (!prune) {
+ results.push.apply(results, checkSet);
+
+ } else if (context && context.nodeType === 1) {
+ for (i = 0; checkSet[i] != null; i++) {
+ if (checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i]))) {
+ results.push(set[i]);
+ }
+ }
+
+ } else {
+ for (i = 0; checkSet[i] != null; i++) {
+ if (checkSet[i] && checkSet[i].nodeType === 1) {
+ results.push(set[i]);
+ }
+ }
+ }
+
+ } else {
+ makeArray(checkSet, results);
+ }
+
+ if (extra) {
+ Sizzle(extra, origContext, results, seed);
+ Sizzle.uniqueSort(results);
+ }
+
+ return results;
+ };
+
+ Sizzle.uniqueSort = function (results) {
+ ///
+ ///
Removes all duplicate elements from an array of elements.
+ ///
+ /// The array to translate
+ /// The array after translation.
+
+ if (sortOrder) {
+ hasDuplicate = baseHasDuplicate;
+ results.sort(sortOrder);
+
+ if (hasDuplicate) {
+ for (var i = 1; i < results.length; i++) {
+ if (results[i] === results[i - 1]) {
+ results.splice(i--, 1);
+ }
+ }
+ }
+ }
+
+ return results;
+ };
+
+ Sizzle.matches = function (expr, set) {
+ return Sizzle(expr, null, null, set);
+ };
+
+ Sizzle.matchesSelector = function (node, expr) {
+ return Sizzle(expr, null, null, [node]).length > 0;
+ };
+
+ Sizzle.find = function (expr, context, isXML) {
+ var set;
+
+ if (!expr) {
+ return [];
+ }
+
+ for (var i = 0, l = Expr.order.length; i < l; i++) {
+ var match,
+ type = Expr.order[i];
+
+ if ((match = Expr.leftMatch[type].exec(expr))) {
+ var left = match[1];
+ match.splice(1, 1);
+
+ if (left.substr(left.length - 1) !== "\\") {
+ match[1] = (match[1] || "").replace(/\\/g, "");
+ set = Expr.find[type](match, context, isXML);
+
+ if (set != null) {
+ expr = expr.replace(Expr.match[type], "");
+ break;
+ }
+ }
+ }
+ }
+
+ if (!set) {
+ set = context.getElementsByTagName("*");
+ }
+
+ return { set: set, expr: expr };
+ };
+
+ Sizzle.filter = function (expr, set, inplace, not) {
+ var match, anyFound,
+ old = expr,
+ result = [],
+ curLoop = set,
+ isXMLFilter = set && set[0] && Sizzle.isXML(set[0]);
+
+ while (expr && set.length) {
+ for (var type in Expr.filter) {
+ if ((match = Expr.leftMatch[type].exec(expr)) != null && match[2]) {
+ var found, item,
+ filter = Expr.filter[type],
+ left = match[1];
+
+ anyFound = false;
+
+ match.splice(1, 1);
+
+ if (left.substr(left.length - 1) === "\\") {
+ continue;
+ }
+
+ if (curLoop === result) {
+ result = [];
+ }
+
+ if (Expr.preFilter[type]) {
+ match = Expr.preFilter[type](match, curLoop, inplace, result, not, isXMLFilter);
+
+ if (!match) {
+ anyFound = found = true;
+
+ } else if (match === true) {
+ continue;
+ }
+ }
+
+ if (match) {
+ for (var i = 0; (item = curLoop[i]) != null; i++) {
+ if (item) {
+ found = filter(item, match, i, curLoop);
+ var pass = not ^ !!found;
+
+ if (inplace && found != null) {
+ if (pass) {
+ anyFound = true;
+
+ } else {
+ curLoop[i] = false;
+ }
+
+ } else if (pass) {
+ result.push(item);
+ anyFound = true;
+ }
+ }
+ }
+ }
+
+ if (found !== undefined) {
+ if (!inplace) {
+ curLoop = result;
+ }
+
+ expr = expr.replace(Expr.match[type], "");
+
+ if (!anyFound) {
+ return [];
+ }
+
+ break;
+ }
+ }
+ }
+
+ // Improper expression
+ if (expr === old) {
+ if (anyFound == null) {
+ Sizzle.error(expr);
+
+ } else {
+ break;
+ }
+ }
+
+ old = expr;
+ }
+
+ return curLoop;
+ };
+
+ Sizzle.error = function (msg) {
+ throw "Syntax error, unrecognized expression: " + msg;
+ };
+
+ var Expr = Sizzle.selectors = {
+ order: ["ID", "NAME", "TAG"],
+
+ match: {
+ ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+ CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+ NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
+ ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
+ TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
+ CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
+ POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
+ PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
+ },
+
+ leftMatch: {},
+
+ attrMap: {
+ "class": "className",
+ "for": "htmlFor"
+ },
+
+ attrHandle: {
+ href: function (elem) {
+ return elem.getAttribute("href");
+ }
+ },
+
+ relative: {
+ "+": function (checkSet, part) {
+ var isPartStr = typeof part === "string",
+ isTag = isPartStr && !/\W/.test(part),
+ isPartStrNotTag = isPartStr && !isTag;
+
+ if (isTag) {
+ part = part.toLowerCase();
+ }
+
+ for (var i = 0, l = checkSet.length, elem; i < l; i++) {
+ if ((elem = checkSet[i])) {
+ while ((elem = elem.previousSibling) && elem.nodeType !== 1) { }
+
+ checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
+ elem || false :
+ elem === part;
+ }
+ }
+
+ if (isPartStrNotTag) {
+ Sizzle.filter(part, checkSet, true);
+ }
+ },
+
+ ">": function (checkSet, part) {
+ var elem,
+ isPartStr = typeof part === "string",
+ i = 0,
+ l = checkSet.length;
+
+ if (isPartStr && !/\W/.test(part)) {
+ part = part.toLowerCase();
+
+ for (; i < l; i++) {
+ elem = checkSet[i];
+
+ if (elem) {
+ var parent = elem.parentNode;
+ checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
+ }
+ }
+
+ } else {
+ for (; i < l; i++) {
+ elem = checkSet[i];
+
+ if (elem) {
+ checkSet[i] = isPartStr ?
+ elem.parentNode :
+ elem.parentNode === part;
+ }
+ }
+
+ if (isPartStr) {
+ Sizzle.filter(part, checkSet, true);
+ }
+ }
+ },
+
+ "": function (checkSet, part, isXML) {
+ var nodeCheck,
+ doneName = done++,
+ checkFn = dirCheck;
+
+ if (typeof part === "string" && !/\W/.test(part)) {
+ part = part.toLowerCase();
+ nodeCheck = part;
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML);
+ },
+
+ "~": function (checkSet, part, isXML) {
+ var nodeCheck,
+ doneName = done++,
+ checkFn = dirCheck;
+
+ if (typeof part === "string" && !/\W/.test(part)) {
+ part = part.toLowerCase();
+ nodeCheck = part;
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML);
+ }
+ },
+
+ find: {
+ ID: function (match, context, isXML) {
+ if (typeof context.getElementById !== "undefined" && !isXML) {
+ var m = context.getElementById(match[1]);
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ return m && m.parentNode ? [m] : [];
+ }
+ },
+
+ NAME: function (match, context) {
+ if (typeof context.getElementsByName !== "undefined") {
+ var ret = [],
+ results = context.getElementsByName(match[1]);
+
+ for (var i = 0, l = results.length; i < l; i++) {
+ if (results[i].getAttribute("name") === match[1]) {
+ ret.push(results[i]);
+ }
+ }
+
+ return ret.length === 0 ? null : ret;
+ }
+ },
+
+ TAG: function (match, context) {
+ return context.getElementsByTagName(match[1]);
+ }
+ },
+ preFilter: {
+ CLASS: function (match, curLoop, inplace, result, not, isXML) {
+ match = " " + match[1].replace(/\\/g, "") + " ";
+
+ if (isXML) {
+ return match;
+ }
+
+ for (var i = 0, elem; (elem = curLoop[i]) != null; i++) {
+ if (elem) {
+ if (not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n]/g, " ").indexOf(match) >= 0)) {
+ if (!inplace) {
+ result.push(elem);
+ }
+
+ } else if (inplace) {
+ curLoop[i] = false;
+ }
+ }
+ }
+
+ return false;
+ },
+
+ ID: function (match) {
+ return match[1].replace(/\\/g, "");
+ },
+
+ TAG: function (match, curLoop) {
+ return match[1].toLowerCase();
+ },
+
+ CHILD: function (match) {
+ if (match[1] === "nth") {
+ // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
+ var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
+ match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
+ !/\D/.test(match[2]) && "0n+" + match[2] || match[2]);
+
+ // calculate the numbers (first)n+(last) including if they are negative
+ match[2] = (test[1] + (test[2] || 1)) - 0;
+ match[3] = test[3] - 0;
+ }
+
+ // TODO: Move to normal caching system
+ match[0] = done++;
+
+ return match;
+ },
+
+ ATTR: function (match, curLoop, inplace, result, not, isXML) {
+ var name = match[1].replace(/\\/g, "");
+
+ if (!isXML && Expr.attrMap[name]) {
+ match[1] = Expr.attrMap[name];
+ }
+
+ if (match[2] === "~=") {
+ match[4] = " " + match[4] + " ";
+ }
+
+ return match;
+ },
+
+ PSEUDO: function (match, curLoop, inplace, result, not) {
+ if (match[1] === "not") {
+ // If we're dealing with a complex expression, or a simple one
+ if ((chunker.exec(match[3]) || "").length > 1 || /^\w/.test(match[3])) {
+ match[3] = Sizzle(match[3], null, null, curLoop);
+
+ } else {
+ var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+
+ if (!inplace) {
+ result.push.apply(result, ret);
+ }
+
+ return false;
+ }
+
+ } else if (Expr.match.POS.test(match[0]) || Expr.match.CHILD.test(match[0])) {
+ return true;
+ }
+
+ return match;
+ },
+
+ POS: function (match) {
+ match.unshift(true);
+
+ return match;
+ }
+ },
+
+ filters: {
+ enabled: function (elem) {
+ return elem.disabled === false && elem.type !== "hidden";
+ },
+
+ disabled: function (elem) {
+ return elem.disabled === true;
+ },
+
+ checked: function (elem) {
+ return elem.checked === true;
+ },
+
+ selected: function (elem) {
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ elem.parentNode.selectedIndex;
+
+ return elem.selected === true;
+ },
+
+ parent: function (elem) {
+ return !!elem.firstChild;
+ },
+
+ empty: function (elem) {
+ return !elem.firstChild;
+ },
+
+ has: function (elem, i, match) {
+ ///
+ ///
Internal use only; use hasClass('class')
+ ///
+ ///
+
+ return !!Sizzle(match[3], elem).length;
+ },
+
+ header: function (elem) {
+ return (/h\d/i).test(elem.nodeName);
+ },
+
+ text: function (elem) {
+ return "text" === elem.type;
+ },
+ radio: function (elem) {
+ return "radio" === elem.type;
+ },
+
+ checkbox: function (elem) {
+ return "checkbox" === elem.type;
+ },
+
+ file: function (elem) {
+ return "file" === elem.type;
+ },
+ password: function (elem) {
+ return "password" === elem.type;
+ },
+
+ submit: function (elem) {
+ return "submit" === elem.type;
+ },
+
+ image: function (elem) {
+ return "image" === elem.type;
+ },
+
+ reset: function (elem) {
+ return "reset" === elem.type;
+ },
+
+ button: function (elem) {
+ return "button" === elem.type || elem.nodeName.toLowerCase() === "button";
+ },
+
+ input: function (elem) {
+ return (/input|select|textarea|button/i).test(elem.nodeName);
+ }
+ },
+ setFilters: {
+ first: function (elem, i) {
+ return i === 0;
+ },
+
+ last: function (elem, i, match, array) {
+ return i === array.length - 1;
+ },
+
+ even: function (elem, i) {
+ return i % 2 === 0;
+ },
+
+ odd: function (elem, i) {
+ return i % 2 === 1;
+ },
+
+ lt: function (elem, i, match) {
+ return i < match[3] - 0;
+ },
+
+ gt: function (elem, i, match) {
+ return i > match[3] - 0;
+ },
+
+ nth: function (elem, i, match) {
+ return match[3] - 0 === i;
+ },
+
+ eq: function (elem, i, match) {
+ return match[3] - 0 === i;
+ }
+ },
+ filter: {
+ PSEUDO: function (elem, match, i, array) {
+ var name = match[1],
+ filter = Expr.filters[name];
+
+ if (filter) {
+ return filter(elem, i, match, array);
+
+ } else if (name === "contains") {
+ return (elem.textContent || elem.innerText || Sizzle.getText([elem]) || "").indexOf(match[3]) >= 0;
+
+ } else if (name === "not") {
+ var not = match[3];
+
+ for (var j = 0, l = not.length; j < l; j++) {
+ if (not[j] === elem) {
+ return false;
+ }
+ }
+
+ return true;
+
+ } else {
+ Sizzle.error("Syntax error, unrecognized expression: " + name);
+ }
+ },
+
+ CHILD: function (elem, match) {
+ var type = match[1],
+ node = elem;
+
+ switch (type) {
+ case "only":
+ case "first":
+ while ((node = node.previousSibling)) {
+ if (node.nodeType === 1) {
+ return false;
+ }
+ }
+
+ if (type === "first") {
+ return true;
+ }
+
+ node = elem;
+
+ case "last":
+ while ((node = node.nextSibling)) {
+ if (node.nodeType === 1) {
+ return false;
+ }
+ }
+
+ return true;
+
+ case "nth":
+ var first = match[2],
+ last = match[3];
+
+ if (first === 1 && last === 0) {
+ return true;
+ }
+
+ var doneName = match[0],
+ parent = elem.parentNode;
+
+ if (parent && (parent.sizcache !== doneName || !elem.nodeIndex)) {
+ var count = 0;
+
+ for (node = parent.firstChild; node; node = node.nextSibling) {
+ if (node.nodeType === 1) {
+ node.nodeIndex = ++count;
+ }
+ }
+
+ parent.sizcache = doneName;
+ }
+
+ var diff = elem.nodeIndex - last;
+
+ if (first === 0) {
+ return diff === 0;
+
+ } else {
+ return (diff % first === 0 && diff / first >= 0);
+ }
+ }
+ },
+
+ ID: function (elem, match) {
+ return elem.nodeType === 1 && elem.getAttribute("id") === match;
+ },
+
+ TAG: function (elem, match) {
+ return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match;
+ },
+
+ CLASS: function (elem, match) {
+ return (" " + (elem.className || elem.getAttribute("class")) + " ")
+ .indexOf(match) > -1;
+ },
+
+ ATTR: function (elem, match) {
+ var name = match[1],
+ result = Expr.attrHandle[name] ?
+ Expr.attrHandle[name](elem) :
+ elem[name] != null ?
+ elem[name] :
+ elem.getAttribute(name),
+ value = result + "",
+ type = match[2],
+ check = match[4];
+
+ return result == null ?
+ type === "!=" :
+ type === "=" ?
+ value === check :
+ type === "*=" ?
+ value.indexOf(check) >= 0 :
+ type === "~=" ?
+ (" " + value + " ").indexOf(check) >= 0 :
+ !check ?
+ value && result !== false :
+ type === "!=" ?
+ value !== check :
+ type === "^=" ?
+ value.indexOf(check) === 0 :
+ type === "$=" ?
+ value.substr(value.length - check.length) === check :
+ type === "|=" ?
+ value === check || value.substr(0, check.length + 1) === check + "-" :
+ false;
+ },
+
+ POS: function (elem, match, i, array) {
+ var name = match[2],
+ filter = Expr.setFilters[name];
+
+ if (filter) {
+ return filter(elem, i, match, array);
+ }
+ }
+ }
+ };
+
+ var origPOS = Expr.match.POS,
+ fescape = function (all, num) {
+ return "\\" + (num - 0 + 1);
+ };
+
+ for (var type in Expr.match) {
+ Expr.match[type] = new RegExp(Expr.match[type].source + (/(?![^\[]*\])(?![^\(]*\))/.source));
+ Expr.leftMatch[type] = new RegExp(/(^(?:.|\r|\n)*?)/.source + Expr.match[type].source.replace(/\\(\d+)/g, fescape));
+ }
+
+ var makeArray = function (array, results) {
+ array = Array.prototype.slice.call(array, 0);
+
+ if (results) {
+ results.push.apply(results, array);
+ return results;
+ }
+
+ return array;
+ };
+
+ // Perform a simple check to determine if the browser is capable of
+ // converting a NodeList to an array using builtin methods.
+ // Also verifies that the returned array holds DOM nodes
+ // (which is not the case in the Blackberry browser)
+ try {
+ Array.prototype.slice.call(document.documentElement.childNodes, 0)[0].nodeType;
+
+ // Provide a fallback method if it does not work
+ } catch (e) {
+ makeArray = function (array, results) {
+ var i = 0,
+ ret = results || [];
+
+ if (toString.call(array) === "[object Array]") {
+ Array.prototype.push.apply(ret, array);
+
+ } else {
+ if (typeof array.length === "number") {
+ for (var l = array.length; i < l; i++) {
+ ret.push(array[i]);
+ }
+
+ } else {
+ for (; array[i]; i++) {
+ ret.push(array[i]);
+ }
+ }
+ }
+
+ return ret;
+ };
+ }
+
+ var sortOrder, siblingCheck;
+
+ if (document.documentElement.compareDocumentPosition) {
+ sortOrder = function (a, b) {
+ if (a === b) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ if (!a.compareDocumentPosition || !b.compareDocumentPosition) {
+ return a.compareDocumentPosition ? -1 : 1;
+ }
+
+ return a.compareDocumentPosition(b) & 4 ? -1 : 1;
+ };
+
+ } else {
+ sortOrder = function (a, b) {
+ var al, bl,
+ ap = [],
+ bp = [],
+ aup = a.parentNode,
+ bup = b.parentNode,
+ cur = aup;
+
+ // The nodes are identical, we can exit early
+ if (a === b) {
+ hasDuplicate = true;
+ return 0;
+
+ // If the nodes are siblings (or identical) we can do a quick check
+ } else if (aup === bup) {
+ return siblingCheck(a, b);
+
+ // If no parents were found then the nodes are disconnected
+ } else if (!aup) {
+ return -1;
+
+ } else if (!bup) {
+ return 1;
+ }
+
+ // Otherwise they're somewhere else in the tree so we need
+ // to build up a full list of the parentNodes for comparison
+ while (cur) {
+ ap.unshift(cur);
+ cur = cur.parentNode;
+ }
+
+ cur = bup;
+
+ while (cur) {
+ bp.unshift(cur);
+ cur = cur.parentNode;
+ }
+
+ al = ap.length;
+ bl = bp.length;
+
+ // Start walking down the tree looking for a discrepancy
+ for (var i = 0; i < al && i < bl; i++) {
+ if (ap[i] !== bp[i]) {
+ return siblingCheck(ap[i], bp[i]);
+ }
+ }
+
+ // We ended someplace up the tree so do a sibling check
+ return i === al ?
+ siblingCheck(a, bp[i], -1) :
+ siblingCheck(ap[i], b, 1);
+ };
+
+ siblingCheck = function (a, b, ret) {
+ if (a === b) {
+ return ret;
+ }
+
+ var cur = a.nextSibling;
+
+ while (cur) {
+ if (cur === b) {
+ return -1;
+ }
+
+ cur = cur.nextSibling;
+ }
+
+ return 1;
+ };
+ }
+
+ // Utility function for retreiving the text value of an array of DOM nodes
+ Sizzle.getText = function (elems) {
+ var ret = "", elem;
+
+ for (var i = 0; elems[i]; i++) {
+ elem = elems[i];
+
+ // Get the text from text nodes and CDATA nodes
+ if (elem.nodeType === 3 || elem.nodeType === 4) {
+ ret += elem.nodeValue;
+
+ // Traverse everything else, except comment nodes
+ } else if (elem.nodeType !== 8) {
+ ret += Sizzle.getText(elem.childNodes);
+ }
+ }
+
+ return ret;
+ };
+
+ // [vsdoc] The following function has been modified for IntelliSense.
+ // Check to see if the browser returns elements by name when
+ // querying by getElementById (and provide a workaround)
+ (function () {
+ // We're going to inject a fake input element with a specified name
+ // var form = document.createElement("div"),
+ // id = "script" + (new Date()).getTime(),
+ // root = document.documentElement;
+
+ // form.innerHTML = "";
+
+ // // Inject it into the root element, check its status, and remove it quickly
+ // root.insertBefore( form, root.firstChild );
+
+ // // The workaround has to do additional checks after a getElementById
+ // // Which slows things down for other browsers (hence the branching)
+ // if ( document.getElementById( id ) ) {
+ Expr.find.ID = function (match, context, isXML) {
+ if (typeof context.getElementById !== "undefined" && !isXML) {
+ var m = context.getElementById(match[1]);
+
+ return m ?
+ m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
+ [m] :
+ undefined :
+ [];
+ }
+ };
+
+ Expr.filter.ID = function (elem, match) {
+ var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+
+ return elem.nodeType === 1 && node && node.nodeValue === match;
+ };
+ // }
+
+ // root.removeChild( form );
+
+ // release memory in IE
+ root = form = null;
+ })();
+
+ // [vsdoc] The following function has been modified for IntelliSense.
+ (function () {
+ // Check to see if the browser returns only elements
+ // when doing getElementsByTagName("*")
+
+ // Create a fake element
+ // var div = document.createElement("div");
+ // div.appendChild( document.createComment("") );
+
+ // Make sure no comments are found
+ // if ( div.getElementsByTagName("*").length > 0 ) {
+ Expr.find.TAG = function (match, context) {
+ var results = context.getElementsByTagName(match[1]);
+
+ // Filter out possible comments
+ if (match[1] === "*") {
+ var tmp = [];
+
+ for (var i = 0; results[i]; i++) {
+ if (results[i].nodeType === 1) {
+ tmp.push(results[i]);
+ }
+ }
+
+ results = tmp;
+ }
+
+ return results;
+ };
+ // }
+
+ // Check to see if an attribute returns normalized href attributes
+ // div.innerHTML = "";
+
+ // if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
+ // div.firstChild.getAttribute("href") !== "#" ) {
+
+ // Expr.attrHandle.href = function( elem ) {
+ // return elem.getAttribute( "href", 2 );
+ // };
+ // }
+
+ // release memory in IE
+ div = null;
+ })();
+
+ if (document.querySelectorAll) {
+ (function () {
+ var oldSizzle = Sizzle,
+ div = document.createElement("div"),
+ id = "__sizzle__";
+
+ div.innerHTML = "";
+
+ // Safari can't handle uppercase or unicode characters when
+ // in quirks mode.
+ if (div.querySelectorAll && div.querySelectorAll(".TEST").length === 0) {
+ return;
+ }
+
+ Sizzle = function (query, context, extra, seed) {
+ context = context || document;
+
+ // Make sure that attribute selectors are quoted
+ query = query.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
+
+ // Only use querySelectorAll on non-XML documents
+ // (ID selectors don't work in non-HTML documents)
+ if (!seed && !Sizzle.isXML(context)) {
+ if (context.nodeType === 9) {
+ try {
+ return makeArray(context.querySelectorAll(query), extra);
+ } catch (qsaError) { }
+
+ // qSA works strangely on Element-rooted queries
+ // We can work around this by specifying an extra ID on the root
+ // and working up from there (Thanks to Andrew Dupont for the technique)
+ // IE 8 doesn't work on object elements
+ } else if (context.nodeType === 1 && context.nodeName.toLowerCase() !== "object") {
+ var old = context.getAttribute("id"),
+ nid = old || id;
+
+ if (!old) {
+ context.setAttribute("id", nid);
+ }
+
+ try {
+ return makeArray(context.querySelectorAll("#" + nid + " " + query), extra);
+
+ } catch (pseudoError) {
+ } finally {
+ if (!old) {
+ context.removeAttribute("id");
+ }
+ }
+ }
+ }
+
+ return oldSizzle(query, context, extra, seed);
+ };
+
+ for (var prop in oldSizzle) {
+ Sizzle[prop] = oldSizzle[prop];
+ }
+
+ // release memory in IE
+ div = null;
+ })();
+ }
+
+ (function () {
+ var html = document.documentElement,
+ matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector,
+ pseudoWorks = false;
+
+ try {
+ // This should fail with an exception
+ // Gecko does not error, returns false instead
+ matches.call(document.documentElement, "[test!='']:sizzle");
+
+ } catch (pseudoError) {
+ pseudoWorks = true;
+ }
+
+ if (matches) {
+ Sizzle.matchesSelector = function (node, expr) {
+ // Make sure that attribute selectors are quoted
+ expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
+
+ if (!Sizzle.isXML(node)) {
+ try {
+ if (pseudoWorks || !Expr.match.PSEUDO.test(expr) && !/!=/.test(expr)) {
+ return matches.call(node, expr);
+ }
+ } catch (e) { }
+ }
+
+ return Sizzle(expr, null, null, [node]).length > 0;
+ };
+ }
+ })();
+
+ (function () {
+ var div = document.createElement("div");
+
+ div.innerHTML = "";
+
+ // Opera can't find a second classname (in 9.6)
+ // Also, make sure that getElementsByClassName actually exists
+ if (!div.getElementsByClassName || div.getElementsByClassName("e").length === 0) {
+ return;
+ }
+
+ // Safari caches class attributes, doesn't catch changes (in 3.2)
+ div.lastChild.className = "e";
+
+ if (div.getElementsByClassName("e").length === 1) {
+ return;
+ }
+
+ Expr.order.splice(1, 0, "CLASS");
+ Expr.find.CLASS = function (match, context, isXML) {
+ if (typeof context.getElementsByClassName !== "undefined" && !isXML) {
+ return context.getElementsByClassName(match[1]);
+ }
+ };
+
+ // release memory in IE
+ div = null;
+ })();
+
+ function dirNodeCheck(dir, cur, doneName, checkSet, nodeCheck, isXML) {
+ for (var i = 0, l = checkSet.length; i < l; i++) {
+ var elem = checkSet[i];
+
+ if (elem) {
+ var match = false;
+
+ elem = elem[dir];
+
+ while (elem) {
+ if (elem.sizcache === doneName) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if (elem.nodeType === 1 && !isXML) {
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+
+ if (elem.nodeName.toLowerCase() === cur) {
+ match = elem;
+ break;
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+ }
+
+ function dirCheck(dir, cur, doneName, checkSet, nodeCheck, isXML) {
+ for (var i = 0, l = checkSet.length; i < l; i++) {
+ var elem = checkSet[i];
+
+ if (elem) {
+ var match = false;
+
+ elem = elem[dir];
+
+ while (elem) {
+ if (elem.sizcache === doneName) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if (elem.nodeType === 1) {
+ if (!isXML) {
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+
+ if (typeof cur !== "string") {
+ if (elem === cur) {
+ match = true;
+ break;
+ }
+
+ } else if (Sizzle.filter(cur, [elem]).length > 0) {
+ match = elem;
+ break;
+ }
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+ }
+
+ if (document.documentElement.contains) {
+ Sizzle.contains = function (a, b) {
+ ///
+ ///
Check to see if a DOM node is within another DOM node.
+ ///
+ ///
+ ///
The DOM element that may contain the other element.
+ ///
+ ///
+ ///
The DOM node that may be contained by the other element.
+ ///
+ ///
+
+ return a !== b && (a.contains ? a.contains(b) : true);
+ };
+
+ } else if (document.documentElement.compareDocumentPosition) {
+ Sizzle.contains = function (a, b) {
+ ///
+ ///
Check to see if a DOM node is within another DOM node.
+ ///
+ ///
+ ///
The DOM element that may contain the other element.
+ ///
+ ///
+ ///
The DOM node that may be contained by the other element.
+ ///
+ ///
+
+ return !!(a.compareDocumentPosition(b) & 16);
+ };
+
+ } else {
+ Sizzle.contains = function () {
+ return false;
+ };
+ }
+
+ Sizzle.isXML = function (elem) {
+ ///
+ ///
Determines if the parameter passed is an XML document.
+ ///
+ /// The object to test
+ /// True if the parameter is an XML document; otherwise false.
+
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
+
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+ };
+
+ var posProcess = function (selector, context) {
+ var match,
+ tmpSet = [],
+ later = "",
+ root = context.nodeType ? [context] : context;
+
+ // Position selectors must be done after the filter
+ // And so must :not(positional) so we move all PSEUDOs to the end
+ while ((match = Expr.match.PSEUDO.exec(selector))) {
+ later += match[0];
+ selector = selector.replace(Expr.match.PSEUDO, "");
+ }
+
+ selector = Expr.relative[selector] ? selector + "*" : selector;
+
+ for (var i = 0, l = root.length; i < l; i++) {
+ Sizzle(selector, root[i], tmpSet);
+ }
+
+ return Sizzle.filter(later, tmpSet);
+ };
+
+ // EXPOSE
+ jQuery.find = Sizzle;
+ jQuery.expr = Sizzle.selectors;
+ jQuery.expr[":"] = jQuery.expr.filters;
+ jQuery.unique = Sizzle.uniqueSort;
+ jQuery.text = Sizzle.getText;
+ jQuery.isXMLDoc = Sizzle.isXML;
+ jQuery.contains = Sizzle.contains;
+
+
+ })();
+
+
+ var runtil = /Until$/,
+ rparentsprev = /^(?:parents|prevUntil|prevAll)/,
+ // Note: This RegExp should be improved, or likely pulled from Sizzle
+ rmultiselector = /,/,
+ isSimple = /^.[^:#\[\.,]*$/,
+ slice = Array.prototype.slice,
+ POS = jQuery.expr.match.POS;
+
+ jQuery.fn.extend({
+ find: function (selector) {
+ ///
+ ///
Searches for all elements that match the specified expression.
+ ///
This method is a good way to find additional descendant
+ ///
elements with which to process.
+ ///
All searching is done using a jQuery expression. The expression can be
+ ///
written using CSS 1-3 Selector syntax, or basic XPath.
+ ///
Part of DOM/Traversing
+ ///
+ ///
+ ///
+ ///
An expression to search with.
+ ///
+ ///
+
+ var ret = this.pushStack("", "find", selector),
+ length = 0;
+
+ for (var i = 0, l = this.length; i < l; i++) {
+ length = ret.length;
+ jQuery.find(selector, this[i], ret);
+
+ if (i > 0) {
+ // Make sure that the results are unique
+ for (var n = length; n < ret.length; n++) {
+ for (var r = 0; r < length; r++) {
+ if (ret[r] === ret[n]) {
+ ret.splice(n--, 1);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ return ret;
+ },
+
+ has: function (target) {
+ ///
+ ///
Reduce the set of matched elements to those that have a descendant that matches the
+ ///
selector or DOM element.
+ ///
+ ///
+ ///
A string containing a selector expression to match elements against.
+ ///
+ ///
+
+ var targets = jQuery(target);
+ return this.filter(function () {
+ for (var i = 0, l = targets.length; i < l; i++) {
+ if (jQuery.contains(this, targets[i])) {
+ return true;
+ }
+ }
+ });
+ },
+
+ not: function (selector) {
+ ///
+ ///
Removes any elements inside the array of elements from the set
+ ///
of matched elements. This method is used to remove one or more
+ ///
elements from a jQuery object.
+ ///
Part of DOM/Traversing
+ ///
+ ///
+ ///
A set of elements to remove from the jQuery set of matched elements.
+ ///
+ ///
+
+ return this.pushStack(winnow(this, selector, false), "not", selector);
+ },
+
+ filter: function (selector) {
+ ///
+ ///
Removes all elements from the set of matched elements that do not
+ ///
pass the specified filter. This method is used to narrow down
+ ///
the results of a search.
+ ///
})
+ ///
Part of DOM/Traversing
+ ///
+ ///
+ ///
+ ///
A function to use for filtering
+ ///
+ ///
+
+ return this.pushStack(winnow(this, selector, true), "filter", selector);
+ },
+
+ is: function (selector) {
+ ///
+ ///
Checks the current selection against an expression and returns true,
+ ///
if at least one element of the selection fits the given expression.
+ ///
Does return false, if no element fits or the expression is not valid.
+ ///
filter(String) is used internally, therefore all rules that apply there
+ ///
apply here, too.
+ ///
Part of DOM/Traversing
+ ///
+ ///
+ ///
+ ///
The expression with which to filter
+ ///
+
+ return !!selector && jQuery.filter(selector, this).length > 0;
+ },
+
+ closest: function (selectors, context) {
+ ///
+ ///
Get a set of elements containing the closest parent element that matches the specified selector, the starting element included.
+ ///
+ ///
+ ///
A string containing a selector expression to match elements against.
+ ///
+ ///
+ ///
A DOM element within which a matching element may be found. If no context is passed
+ ///
in then the context of the jQuery set will be used instead.
+ ///
+ ///
+
+ var ret = [], i, l, cur = this[0];
+
+ if (jQuery.isArray(selectors)) {
+ var match, selector,
+ matches = {},
+ level = 1;
+
+ if (cur && selectors.length) {
+ for (i = 0, l = selectors.length; i < l; i++) {
+ selector = selectors[i];
+
+ if (!matches[selector]) {
+ matches[selector] = jQuery.expr.match.POS.test(selector) ?
+ jQuery(selector, context || this.context) :
+ selector;
+ }
+ }
+
+ while (cur && cur.ownerDocument && cur !== context) {
+ for (selector in matches) {
+ match = matches[selector];
+
+ if (match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match)) {
+ ret.push({ selector: selector, elem: cur, level: level });
+ }
+ }
+
+ cur = cur.parentNode;
+ level++;
+ }
+ }
+
+ return ret;
+ }
+
+ var pos = POS.test(selectors) ?
+ jQuery(selectors, context || this.context) : null;
+
+ for (i = 0, l = this.length; i < l; i++) {
+ cur = this[i];
+
+ while (cur) {
+ if (pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors)) {
+ ret.push(cur);
+ break;
+
+ } else {
+ cur = cur.parentNode;
+ if (!cur || !cur.ownerDocument || cur === context) {
+ break;
+ }
+ }
+ }
+ }
+
+ ret = ret.length > 1 ? jQuery.unique(ret) : ret;
+
+ return this.pushStack(ret, "closest", selectors);
+ },
+
+ // Determine the position of an element within
+ // the matched set of elements
+ index: function (elem) {
+ ///
+ ///
Searches every matched element for the object and returns
+ ///
the index of the element, if found, starting with zero.
+ ///
Returns -1 if the object wasn't found.
+ ///
Part of Core
+ ///
+ ///
+ ///
+ ///
Object to search for
+ ///
+
+ if (!elem || typeof elem === "string") {
+ return jQuery.inArray(this[0],
+ // If it receives a string, the selector is used
+ // If it receives nothing, the siblings are used
+ elem ? jQuery(elem) : this.parent().children());
+ }
+ // Locate the position of the desired element
+ return jQuery.inArray(
+ // If it receives a jQuery object, the first element is used
+ elem.jquery ? elem[0] : elem, this);
+ },
+
+ add: function (selector, context) {
+ ///
+ ///
Adds one or more Elements to the set of matched elements.
+ ///
Part of DOM/Traversing
+ ///
+ ///
+ ///
A string containing a selector expression to match additional elements against.
+ ///
+ ///
+ ///
Add some elements rooted against the specified context.
+ ///
+ ///
+
+ var set = typeof selector === "string" ?
+ jQuery(selector, context || this.context) :
+ jQuery.makeArray(selector),
+ all = jQuery.merge(this.get(), set);
+
+ return this.pushStack(isDisconnected(set[0]) || isDisconnected(all[0]) ?
+ all :
+ jQuery.unique(all));
+ },
+
+ andSelf: function () {
+ ///
+ ///
Adds the previous selection to the current selection.
+ ///
+ ///
+
+ return this.add(this.prevObject);
+ }
+ });
+
+ // A painfully simple check to see if an element is disconnected
+ // from a document (should be improved, where feasible).
+ function isDisconnected(node) {
+ return !node || !node.parentNode || node.parentNode.nodeType === 11;
+ }
+
+ jQuery.fn.parents = function (until, selector) {
+ ///
+ /// Get the ancestors of each element in the current set of matched elements, optionally filtered by a selector.
+ ///
+ ///
+ /// A string containing a selector expression to match elements against.
+ ///
+ ///
+ return jQuery.dir(elem, "parentNode");
+ };
+
+ jQuery.fn.parentsUntil = function (until, selector) {
+ ///
+ /// Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector.
+ ///
+ ///
+ /// A string containing a selector expression to indicate where to stop matching ancestor elements.
+ ///
+ ///
+ return jQuery.dir(elem, "parentNode", until);
+ };
+
+ jQuery.each({
+ parent: function (elem) {
+ var parent = elem.parentNode;
+ return parent && parent.nodeType !== 11 ? parent : null;
+ },
+ next: function (elem) {
+ return jQuery.nth(elem, 2, "nextSibling");
+ },
+ prev: function (elem) {
+ return jQuery.nth(elem, 2, "previousSibling");
+ },
+ nextAll: function (elem) {
+ return jQuery.dir(elem, "nextSibling");
+ },
+ prevAll: function (elem) {
+ return jQuery.dir(elem, "previousSibling");
+ },
+ nextUntil: function (elem, i, until) {
+ ///
+ ///
Get all following siblings of each element up to but not including the element matched
+ ///
by the selector.
+ ///
+ ///
+ ///
A string containing a selector expression to indicate where to stop matching following
+ ///
sibling elements.
+ ///
+ ///
+
+ return jQuery.dir(elem, "nextSibling", until);
+ },
+ prevUntil: function (elem, i, until) {
+ ///
+ ///
Get all preceding siblings of each element up to but not including the element matched
+ ///
by the selector.
+ ///
+ ///
+ ///
A string containing a selector expression to indicate where to stop matching preceding
+ ///
sibling elements.
+ ///
+ ///
+
+ return jQuery.dir(elem, "previousSibling", until);
+ },
+ siblings: function (elem) {
+ return jQuery.sibling(elem.parentNode.firstChild, elem);
+ },
+ children: function (elem) {
+ return jQuery.sibling(elem.firstChild);
+ },
+ contents: function (elem) {
+ return jQuery.nodeName(elem, "iframe") ?
+ elem.contentDocument || elem.contentWindow.document :
+ jQuery.makeArray(elem.childNodes);
+ }
+ }, function (name, fn) {
+ jQuery.fn[name] = function (until, selector) {
+ var ret = jQuery.map(this, fn, until);
+
+ if (!runtil.test(name)) {
+ selector = until;
+ }
+
+ if (selector && typeof selector === "string") {
+ ret = jQuery.filter(selector, ret);
+ }
+
+ ret = this.length > 1 ? jQuery.unique(ret) : ret;
+
+ if ((this.length > 1 || rmultiselector.test(selector)) && rparentsprev.test(name)) {
+ ret = ret.reverse();
+ }
+
+ return this.pushStack(ret, name, slice.call(arguments).join(","));
+ };
+ });
+
+ jQuery.extend({
+ filter: function (expr, elems, not) {
+ if (not) {
+ expr = ":not(" + expr + ")";
+ }
+
+ return elems.length === 1 ?
+ jQuery.find.matchesSelector(elems[0], expr) ? [elems[0]] : [] :
+ jQuery.find.matches(expr, elems);
+ },
+
+ dir: function (elem, dir, until) {
+ ///
+ ///
This member is internal only.
+ ///
+ ///
+
+ var matched = [],
+ cur = elem[dir];
+
+ while (cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery(cur).is(until))) {
+ if (cur.nodeType === 1) {
+ matched.push(cur);
+ }
+ cur = cur[dir];
+ }
+ return matched;
+ },
+
+ nth: function (cur, result, dir, elem) {
+ ///
+ ///
This member is internal only.
+ ///
+ ///
+
+ result = result || 1;
+ var num = 0;
+
+ for (; cur; cur = cur[dir]) {
+ if (cur.nodeType === 1 && ++num === result) {
+ break;
+ }
+ }
+
+ return cur;
+ },
+
+ sibling: function (n, elem) {
+ ///
+ ///
This member is internal only.
+ ///
+ ///
+
+ var r = [];
+
+ for (; n; n = n.nextSibling) {
+ if (n.nodeType === 1 && n !== elem) {
+ r.push(n);
+ }
+ }
+
+ return r;
+ }
+ });
+
+ // Implement the identical functionality for filter and not
+ function winnow(elements, qualifier, keep) {
+ if (jQuery.isFunction(qualifier)) {
+ return jQuery.grep(elements, function (elem, i) {
+ var retVal = !!qualifier.call(elem, i, elem);
+ return retVal === keep;
+ });
+
+ } else if (qualifier.nodeType) {
+ return jQuery.grep(elements, function (elem, i) {
+ return (elem === qualifier) === keep;
+ });
+
+ } else if (typeof qualifier === "string") {
+ var filtered = jQuery.grep(elements, function (elem) {
+ return elem.nodeType === 1;
+ });
+
+ if (isSimple.test(qualifier)) {
+ return jQuery.filter(qualifier, filtered, !keep);
+ } else {
+ qualifier = jQuery.filter(qualifier, filtered);
+ }
+ }
+
+ return jQuery.grep(elements, function (elem, i) {
+ return (jQuery.inArray(elem, qualifier) >= 0) === keep;
+ });
+ }
+
+
+
+
+ var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
+ rleadingWhitespace = /^\s+/,
+ rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
+ rtagName = /<([\w:]+)/,
+ rtbody = /\s]+\/)>/g,
+ wrapMap = {
+ option: [1, ""],
+ legend: [1, ""],
+ thead: [1, "
", "
"],
+ tr: [2, "
", "
"],
+ td: [3, "
", "
"],
+ col: [2, "
", "
"],
+ area: [1, ""],
+ _default: [0, "", ""]
+ };
+
+ wrapMap.optgroup = wrapMap.option;
+ wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+ wrapMap.th = wrapMap.td;
+
+ // IE can't serialize and ");
+ };
+
+ if (jQueryTmplVersion > 0) {
+ jQuery['tmpl']['tag']['ko_code'] = {
+ open: "__.push($1 || '');"
+ };
+ jQuery['tmpl']['tag']['ko_with'] = {
+ open: "with($1) {",
+ close: "} "
+ };
+ }
+ };
+
+ ko.jqueryTmplTemplateEngine.prototype = new ko.templateEngine();
+
+ // Use this one by default *only if jquery.tmpl is referenced*
+ var jqueryTmplTemplateEngineInstance = new ko.jqueryTmplTemplateEngine();
+ if (jqueryTmplTemplateEngineInstance.jQueryTmplVersion > 0)
+ ko.setTemplateEngine(jqueryTmplTemplateEngineInstance);
+
+ ko.exportSymbol('ko.jqueryTmplTemplateEngine', ko.jqueryTmplTemplateEngine);
+})();})(window);
diff --git a/packages/knockoutjs.2.0.0.0/Content/Scripts/knockout-2.0.0.js b/packages/knockoutjs.2.0.0.0/Content/Scripts/knockout-2.0.0.js
new file mode 100644
index 0000000..d78d45e
--- /dev/null
+++ b/packages/knockoutjs.2.0.0.0/Content/Scripts/knockout-2.0.0.js
@@ -0,0 +1,129 @@
+/*!
+* Note: While Microsoft is not the author of this script file, Microsoft
+* grants you the right to use this file for the sole purpose of either:
+* (i) interacting through your browser with the Microsoft website, subject
+* to the website's terms of use; or (ii) using the files as included with a
+* Microsoft product subject to the Microsoft Software License Terms for that
+* Microsoft product. Microsoft reserves all other rights to the files not
+* expressly granted by Microsoft, whether by implication, estoppel or
+* otherwise. The notices and licenses below are for informational purposes
+* only.
+*
+* Provided for Informational Purposes Only
+* MIT License
+*
+* Permission is hereby granted, free of charge, to any person obtaining a
+* copy of this software and associated documentation files (the "Software"),
+* to deal in the Software without restriction, including without limitation
+* the rights to use, copy, modify, merge, publish, distribute, sublicense,
+* and/or sell copies of the Software, and to permit persons to whom the
+* Software is furnished to do so, subject to the following conditions:
+*
+* The copyright notice and this permission notice shall be included in all
+* copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+* DEALINGS IN THE SOFTWARE.
+*/
+// Knockout JavaScript library v2.0.0
+// (c) Steven Sanderson - http://knockoutjs.com/
+// License: MIT (http://www.opensource.org/licenses/mit-license.php)
+
+(function(window,undefined){
+function c(a){throw a;}var l=void 0,m=!0,o=null,p=!1,r=window.ko={};r.b=function(a,b){for(var d=a.split("."),e=window,f=0;f",b[0];);return 4r.a.k(e,a[b])&&e.push(a[b]);return e},ba:function(a,e){for(var a=a||[],b=[],f=0,d=a.length;fa.length?p:a.substring(0,e.length)===e},hb:function(a){for(var e=Array.prototype.slice.call(arguments,1),b="return ("+a+")",f=0;f",""]||!d.indexOf("