text:
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Ninject.Web.Mvc</name>
    </assembly>
    <members>
        <member name="T:Ninject.Web.Mvc.Filter.FilterContextParameter">
            <summary>
            A parameter that contains the controller context and action descriptor for the filter.
            </summary>
        </member>
        <member name="F:Ninject.Web.Mvc.Filter.FilterContextParameter.ParameterName">
            <summary>
            The name of the parameter.
            </summary>
        </member>
        <member name="M:Ninject.Web.Mvc.Filter.FilterContextParameter.#ctor(System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor)">
            <summary>
            Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.Filter.FilterContextParameter"/> class.
            </summary>
            <param name="controllerContext">The controller context.</param>
            <param name="actionDescriptor">The action descriptor.</param>
        </member>
        <member name="P:Ninject.Web.Mvc.Filter.FilterContextParameter.AttributePosition">
            <summary>
            Gets or sets the position of the attribute used to get constructor values from.
            </summary>
            <value>The attribute position.</value>
        </member>
        <member name="P:Ninject.Web.Mvc.Filter.FilterContextParameter.ControllerContext">
            <summary>
            Gets the controller context.
            </summary>
            <value>The controller context.</value>
        </member>
        <member name="P:Ninject.Web.Mvc.Filter.FilterContextParameter.ActionDescriptor">
            <summary>
            Gets the action descriptor.
            </summary>
            <value>The action descriptor.</value>
        </member>
        <member name="T:Ninject.Web.Mvc.Filter.INinjectFilter">
            <summary>
            Used by the NinjectFilterProvider to get injected filters.
            </summary>
        </member>
        <member name="M:Ninject.Web.Mvc.Filter.INinjectFilter.BuildFilters(Ninject.Web.Mvc.Filter.FilterContextParameter)">
            <summary>
            Builds the filter instances.
            </summary>
            <param name="parameter">The parameter.</param>
            <returns>The created filters.</returns>
        </member>
        <member name="T:Ninject.Web.Mvc.Filter.NinjectFilter`1">
            <summary>
            Creates a filter of the specified type using ninject.
            </summary>
            <typeparam name="T">The type of the filter.</typeparam>
        </member>
        <member name="F:Ninject.Web.Mvc.Filter.NinjectFilter`1.kernel">
            <summary>
            The kernel.
            </summary>
        </member>
        <member name="F:Ninject.Web.Mvc.Filter.NinjectFilter`1.scope">
            <summary>
            Teh filter scope.
            </summary>
        </member>
        <member name="F:Ninject.Web.Mvc.Filter.NinjectFilter`1.order">
            <summary>
            The filter order.
            </summary>
        </member>
        <member name="F:Ninject.Web.Mvc.Filter.NinjectFilter`1.filterId">
            <summary>
            The id fo the filter.
            </summary>
        </member>
        <member name="M:Ninject.Web.Mvc.Filter.NinjectFilter`1.#ctor(Ninject.IKernel,System.Web.Mvc.FilterScope,System.Nullable{System.Int32},System.Guid)">
            <summary>
            Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.Filter.NinjectFilter`1"/> class.
            </summary>
            <param name="kernel">The kernel.</param>
            <param name="scope">The filter scope.</param>
            <param name="order">The filter order.</param>
            <param name="filterId">The filter id.</param>
        </member>
        <member name="M:Ninject.Web.Mvc.Filter.NinjectFilter`1.BuildFilters(Ninject.Web.Mvc.Filter.FilterContextParameter)">
            <summary>
            Builds the filter instances.
            </summary>
            <param name="parameter">The parameter.</param>
            <returns>The created filters.</returns>
        </member>
        <member name="P:Ninject.Web.Mvc.Filter.NinjectFilter`1.NumberOfFilters">
            <summary>
            Gets or sets the number of filters created by this instance.
            </summary>
            <value>The number of filters.</value>
        </member>
        <member name="T:Ninject.Web.Mvc.Filter.NinjectFilterAttributeFilterProvider">
            <summary>
            Filter provider that gets the filters form the attributes of the actions.
            </summary>
        </member>
        <member name="F:Ninject.Web.Mvc.Filter.NinjectFilterAttributeFilterProvider.kernel">
            <summary>
            The ninject kernel.
            </summary>
        </member>
        <member name="M:Ninject.Web.Mvc.Filter.NinjectFilterAttributeFilterProvider.#ctor(Ninject.IKernel)">
            <summary>
            Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.Filter.NinjectFilterAttributeFilterProvider"/> class.
            </summary>
            <param name="kernel">The kernel.</param>
        </member>
        <member name="M:Ninject.Web.Mvc.Filter.NinjectFilterAttributeFilterProvider.GetControllerAttributes(System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor)">
            <summary>
            Gets the controller attributes.
            </summary>
            <param name="controllerContext">The controller context.</param>
            <param name="actionDescriptor">The action descriptor.</param>
            <returns>The filters defined by attributes</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.Filter.NinjectFilterAttributeFilterProvider.GetActionAttributes(System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor)">
            <summary>
            Gets the action attributes.
            </summary>
            <param name="controllerContext">The controller context.</param>
            <param name="actionDescriptor">The action descriptor.</param>
            <returns>The filters defined by attributes.</returns>
        </member>
        <member name="T:Ninject.Web.Mvc.Filter.NinjectFilterProvider">
            <summary>
            A filter provider that gets the filter by requesting all INinjectFilters.
            </summary>
        </member>
        <member name="F:Ninject.Web.Mvc.Filter.NinjectFilterProvider.kernel">
            <summary>
            The kernel.
            </summary>
        </member>
        <member name="M:Ninject.Web.Mvc.Filter.NinjectFilterProvider.#ctor(Ninject.IKernel)">
            <summary>
            Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.Filter.NinjectFilterProvider"/> class.
            </summary>
            <param name="kernel">The kernel.</param>
        </member>
        <member name="M:Ninject.Web.Mvc.Filter.NinjectFilterProvider.GetFilters(System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor)">
            <summary>
            Gets the filters.
            </summary>
            <param name="controllerContext">The controller context.</param>
            <param name="actionDescriptor">The action descriptor.</param>
            <returns>All filters defined on the kernel.</returns>
        </member>
        <member name="T:Ninject.Web.Mvc.FilterBindingSyntax.AttributeValueSelector`1">
            <summary>
            Syntax to specify which value from an attribute shall be passed to a constructor parameter.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
        </member>
        <member name="F:Ninject.Web.Mvc.FilterBindingSyntax.AttributeValueSelector`1.attribute">
            <summary>
            The attribute from which the value is returned.
            </summary>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.AttributeValueSelector`1.#ctor(`0)">
            <summary>
            Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.FilterBindingSyntax.AttributeValueSelector`1"/> class.
            </summary>
            <param name="attribute">The attribute from which the value is returned.</param>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.AttributeValueSelector`1.GetValue``1(System.Func{`0,``0})">
            <summary>
            Gets a value from the attribute.
            </summary>
            <typeparam name="T">The type of the returned value.</typeparam>
            <param name="valueSelector">The function that is used to get the value.</param>
            <returns>The selected value.</returns>
        </member>
        <member name="T:Ninject.Web.Mvc.FilterBindingSyntax.BindingRootExtensions">
            <summary>
            Extension methods for IBindingRoot to define filter bindings.
            </summary>
        </member>
        <member name="F:Ninject.Web.Mvc.FilterBindingSyntax.BindingRootExtensions.FilterIdMetadataKey">
            <summary>
            The key used to store the filter id in the binding metadata.
            </summary>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.BindingRootExtensions.BindFilter``1(Ninject.Syntax.IBindingRoot,System.Web.Mvc.FilterScope,System.Nullable{System.Int32})">
            <summary>
            Creates a binding for a filter.
            </summary>
            <typeparam name="T">The type of the filter.</typeparam>
            <param name="kernel">The kernel.</param>
            <param name="scope">The filter scope.</param>
            <param name="order">The filter order.</param>
            <returns>The fluent syntax to specify more information for the binding.</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.BindingRootExtensions.BindFilter``1(Ninject.Syntax.IBindingRoot,System.Linq.Expressions.Expression{System.Func{Ninject.Syntax.IConstructorArgumentSyntax,``0}},System.Web.Mvc.FilterScope,System.Nullable{System.Int32})">
            <summary>
            Indicates that the service should be bound to the specified constructor.
            </summary>
            <typeparam name="T">The type of the implementation.</typeparam>
            <param name="kernel">The kernel.</param>
            <param name="newExpression">The expression that specifies the constructor.</param>
            <param name="scope">The scope.</param>
            <param name="order">The order.</param>
            <returns>The fluent syntax.</returns>
        </member>
        <member name="T:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1">
            <summary>
            Binding builder for filters.
            </summary>
            <typeparam name="T">The type of the filter.</typeparam>
        </member>
        <member name="T:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWhenInNamedWithOrOnSyntax`1">
            <summary>
            Used to set the scope, name, or add additional information or actions to a binding.
            </summary>
            <typeparam name="T">The service being bound.</typeparam>
        </member>
        <member name="T:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWhenSyntax`1">
            <summary>
            Used to add additional information or actions to a binding.
            </summary>
            <typeparam name="T">The type of the service</typeparam>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWhenSyntax`1.When(System.Func{Ninject.Activation.IRequest,System.Boolean})">
            <summary>
            Indicates that the binding should be used only for requests that support the specified condition.
            </summary>
            <param name="condition">The condition.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWhenSyntax`1.When(System.Func{System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor,System.Boolean})">
            <summary>
            Indicates that the binding should be used only for requests that support the specified condition.
            </summary>
            <param name="condition">The condition.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWhenSyntax`1.WhenActionMethodHas(System.Type)">
            <summary>
            Indicates that the binding should be used only when the action method has
            an attribute of the specified type.
            </summary>
            <param name="attributeType">Type of the attribute.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWhenSyntax`1.WhenActionMethodHas``1">
            <summary>
            Indicates that the binding should be used only when the action method has
            an attribute of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWhenSyntax`1.WhenActionMethodHasNo(System.Type)">
            <summary>
            Indicates that the binding should be used only when the action method has
            no attribute of the specified type.
            </summary>
            <param name="attributeType">Type of the attribute.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWhenSyntax`1.WhenActionMethodHasNo``1">
            <summary>
            Indicates that the binding should be used only when the action method has
            no attribute of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWhenSyntax`1.WhenControllerHas(System.Type)">
            <summary>
            Indicates that the binding should be used only when the controller has
            an attribute of the specified type.
            </summary>
            <param name="attributeType">Type of the attribute.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWhenSyntax`1.WhenControllerHas``1">
            <summary>
            Indicates that the binding should be used only when the controller has
            an attribute of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWhenSyntax`1.WhenControllerHasNo(System.Type)">
            <summary>
            Indicates that the binding should be used only when the controller has
            no attribute of the specified type.
            </summary>
            <param name="attributeType">Type of the attribute.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWhenSyntax`1.WhenControllerHasNo``1">
            <summary>
            Indicates that the binding should be used only when the controller has
            no attribute of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWhenSyntax`1.WhenControllerType(System.Type)">
            <summary>
            Whens the type of the controller.
            </summary>
            <param name="controllerType">Type of the controller.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWhenSyntax`1.WhenControllerType``1">
            <summary>
            Whens the type of the controller.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="T:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingInSyntax`1">
            <summary>
            Used to define the scope in which instances activated via a binding should be re-used.
            </summary>
            <typeparam name="T">The service being bound.</typeparam>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingInSyntax`1.InSingletonScope">
            <summary>
            Indicates that only a single instance of the binding should be created, and then
            should be re-used for all subsequent requests.
            </summary>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingInSyntax`1.InTransientScope">
            <summary>
            Indicates that instances activated via the binding should not be re-used, nor have
            their lifecycle managed by Ninject.
            </summary>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingInSyntax`1.InThreadScope">
            <summary>
            Indicates that instances activated via the binding should be re-used within the same thread.
            </summary>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingInSyntax`1.InRequestScope">
            <summary>
            Indicates that instances activated via the binding should be re-used within the same
            HTTP request.
            </summary>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingInSyntax`1.InScope(System.Func{Ninject.Activation.IContext,System.Object})">
            <summary>
            Indicates that instances activated via the binding should be re-used as long as the object
            returned by the provided callback remains alive (that is, has not been garbage collected).
            </summary>
            <param name="scope">The callback that returns the scope.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingInSyntax`1.InScope(System.Func{Ninject.Activation.IContext,System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor,System.Object})">
            <summary>
            Indicates that instances activated via the binding should be re-used as long as the object
            returned by the provided callback remains alive (that is, has not been garbage collected).
            </summary>
            <param name="scope">The callback that returns the scope.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="T:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingNamedSyntax`1">
            <summary>
            Used to define the name of a binding.
            </summary>
            <typeparam name="T">The service being bound.</typeparam>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingNamedSyntax`1.Named(System.String)">
            <summary>
            Indicates that the binding should be registered with the specified name. Names are not
            necessarily unique; multiple bindings for a given service may be registered with the same name.
            </summary>
            <param name="name">The name to give the binding.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="T:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWithSyntax`1">
            <summary>
            Used to add additional information to a binding.
            </summary>
            <typeparam name="T">The service being bound.</typeparam>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWithSyntax`1.WithConstructorArgument(System.String,System.Object)">
            <summary>
            Indicates that the specified constructor argument should be overridden with the specified value.
            </summary>
            <param name="name">The name of the argument to override.</param>
            <param name="value">The value for the argument.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWithSyntax`1.WithConstructorArgument(System.String,System.Func{Ninject.Activation.IContext,System.Object})">
            <summary>
            Indicates that the specified constructor argument should be overridden with the specified value.
            </summary>
            <param name="name">The name of the argument to override.</param>
            <param name="callback">The callback to invoke to get the value for the argument.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWithSyntax`1.WithPropertyValue(System.String,System.Object)">
            <summary>
            Indicates that the specified property should be injected with the specified value.
            </summary>
            <param name="name">The name of the property to override.</param>
            <param name="value">The value for the property.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWithSyntax`1.WithPropertyValue(System.String,System.Func{Ninject.Activation.IContext,System.Object})">
            <summary>
            Indicates that the specified property should be injected with the specified value.
            </summary>
            <param name="name">The name of the property to override.</param>
            <param name="callback">The callback to invoke to get the value for the property.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWithSyntax`1.WithParameter(Ninject.Parameters.IParameter)">
            <summary>
            Adds a custom parameter to the binding.
            </summary>
            <param name="parameter">The parameter.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWithSyntax`1.WithMetadata(System.String,System.Object)">
            <summary>
            Sets the value of a piece of metadata on the binding.
            </summary>
            <param name="key">The metadata key.</param>
            <param name="value">The metadata value.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWithSyntax`1.WithConstructorArgument(System.String,System.Func{Ninject.Activation.IContext,System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor,System.Object})">
            <summary>
            Indicates that the specified constructor argument should be overridden with the specified value.
            </summary>
            <param name="name">The name of the argument to override.</param>
            <param name="callback">The callback.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWithSyntax`1.WithConstructorArgumentFromActionAttribute``1(System.String,System.Func{``0,System.Object})">
            <summary>
            Indicates that the specified constructor argument should be overridden with the specified value.
            The value is retrieved from an attribute on the action of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <param name="name">The name of the argument to override.</param>
            <param name="callback">The callback.</param>
            <returns>
            The fluent syntax to define more information
            </returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWithSyntax`1.WithConstructorArgumentFromControllerAttribute``1(System.String,System.Func{``0,System.Object})">
            <summary>
            Indicates that the specified constructor argument should be overridden with the specified value.
            The value is retrieved from an attribute on the controller of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <param name="name">The name of the argument to override.</param>
            <param name="callback">The callback.</param>
            <returns>
            The fluent syntax to define more information
            </returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWithSyntax`1.WithPropertyValue(System.String,System.Func{Ninject.Activation.IContext,System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor,System.Object})">
            <summary>
            Indicates that the specified property should be injected with the specified value.
            </summary>
            <param name="name">The name of the property to override.</param>
            <param name="callback">The cllback to retrieve the value.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWithSyntax`1.WithPropertyValueFromActionAttribute``1(System.String,System.Func{``0,System.Object})">
            <summary>
            Indicates that the specified property should be injected with the specified value.
            The value is retrieved from an attribute on the action of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <param name="name">The name of the property to override.</param>
            <param name="callback">The cllback to retrieve the value.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWithSyntax`1.WithPropertyValueFromControllerAttribute``1(System.String,System.Func{``0,System.Object})">
            <summary>
            Indicates that the specified property should be injected with the specified value.
            The value is retrieved from an attribute on the controller of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <param name="name">The name of the property to override.</param>
            <param name="callback">The cllback to retrieve the value.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="T:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingOnSyntax`1">
            <summary>
            Used to add additional actions to be performed during activation or deactivation of instances via a binding.
            </summary>
            <typeparam name="T">The service being bound.</typeparam>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingOnSyntax`1.OnActivation(System.Action{`0})">
            <summary>
            Indicates that the specified callback should be invoked when instances are activated.
            </summary>
            <param name="action">The action callback.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingOnSyntax`1.OnActivation(System.Action{Ninject.Activation.IContext,`0})">
            <summary>
            Indicates that the specified callback should be invoked when instances are activated.
            </summary>
            <param name="action">The action callback.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingOnSyntax`1.OnDeactivation(System.Action{`0})">
            <summary>
            Indicates that the specified callback should be invoked when instances are deactivated.
            </summary>
            <param name="action">The action callback.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingOnSyntax`1.OnDeactivation(System.Action{Ninject.Activation.IContext,`0})">
            <summary>
            Indicates that the specified callback should be invoked when instances are deactivated.
            </summary>
            <param name="action">The action callback.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingOnSyntax`1.OnActivation(System.Action{Ninject.Activation.IContext,System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor,`0})">
            <summary>
            Indicates that the specified callback should be invoked when instances are activated.
            </summary>
            <param name="action">The action callback.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="T:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingInNamedWithOrOnSyntax`1">
            <summary>
            Used to set the scope, name, or add additional information or actions to a binding.
            </summary>
            <typeparam name="T">The service being bound.</typeparam>
        </member>
        <member name="T:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingNamedWithOrOnSyntax`1">
            <summary>
            Used to set the scope, name, or add additional information or actions to a binding.
            </summary>
            <typeparam name="T">The service being bound.</typeparam>
        </member>
        <member name="T:Ninject.Web.Mvc.FilterBindingSyntax.IFilterBindingWithOrOnSyntax`1">
            <summary>
            Used to add additional information or actions to a binding.
            </summary>
            <typeparam name="T">The service being bound.</typeparam>
        </member>
        <member name="F:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.ninjectFilterBindingSyntax">
            <summary>
            The binding of the ninject filter. Conditions are added here.
            </summary>
        </member>
        <member name="F:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.filterBindingSyntax">
            <summary>
            The binding of the filter. All other additionla configuration but the conditions are added here.
            </summary>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.#ctor(Ninject.Syntax.IBindingWhenInNamedWithOrOnSyntax{Ninject.Web.Mvc.Filter.NinjectFilter{`0}},Ninject.Syntax.IBindingWhenInNamedWithOrOnSyntax{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1"/> class.
            </summary>
            <param name="ninjectFilterBindingSyntax">The ninject filter binding syntax.</param>
            <param name="filterBindingSyntax">The filter binding syntax.</param>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.Named(System.String)">
            <summary>
            Indicates that the binding should be registered with the specified name. Names are not
            necessarily unique; multiple bindings for a given service may be registered with the same name.
            </summary>
            <param name="name">The name to give the binding.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.When(System.Func{Ninject.Activation.IRequest,System.Boolean})">
            <summary>
            Indicates that the binding should be used only for requests that support the specified condition.
            </summary>
            <param name="condition">The condition.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.When(System.Func{System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor,System.Boolean})">
            <summary>
            Indicates that the binding should be used only for requests that support the specified condition.
            </summary>
            <param name="condition">The condition.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WhenActionMethodHas(System.Type)">
            <summary>
            Indicates that the binding should be used only when the action method has
            an attribute of the specified type.
            </summary>
            <param name="attributeType">Type of the attribute.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WhenActionMethodHas``1">
            <summary>
            Indicates that the binding should be used only when the action method has
            an attribute of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WhenActionMethodHasNo(System.Type)">
            <summary>
            Indicates that the binding should be used only when the action method has
            no attribute of the specified type.
            </summary>
            <param name="attributeType">Type of the attribute.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WhenActionMethodHasNo``1">
            <summary>
            Indicates that the binding should be used only when the action method has
            no attribute of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WhenControllerHas(System.Type)">
            <summary>
            Indicates that the binding should be used only when the controller has
            an attribute of the specified type.
            </summary>
            <param name="attributeType">Type of the attribute.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WhenControllerHas``1">
            <summary>
            Indicates that the binding should be used only when the controller has
            an attribute of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WhenControllerHasNo(System.Type)">
            <summary>
            Indicates that the binding should be used only when the controller has
            no attribute of the specified type.
            </summary>
            <param name="attributeType">Type of the attribute.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WhenControllerHasNo``1">
            <summary>
            Indicates that the binding should be used only when the controller has
            no attribute of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WhenControllerType(System.Type)">
            <summary>
            Whens the type of the controller.
            </summary>
            <param name="controllerType">Type of the controller.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WhenControllerType``1">
            <summary>
            Whens the type of the controller.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.InSingletonScope">
            <summary>
            Indicates that only a single instance of the binding should be created, and then
            should be re-used for all subsequent requests.
            </summary>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.InTransientScope">
            <summary>
            Indicates that instances activated via the binding should not be re-used, nor have
            their lifecycle managed by Ninject.
            </summary>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.InThreadScope">
            <summary>
            Indicates that instances activated via the binding should be re-used within the same thread.
            </summary>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.InRequestScope">
            <summary>
            Indicates that instances activated via the binding should be re-used within the same
            HTTP request.
            </summary>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.InScope(System.Func{Ninject.Activation.IContext,System.Object})">
            <summary>
            Indicates that instances activated via the binding should be re-used as long as the object
            returned by the provided callback remains alive (that is, has not been garbage collected).
            </summary>
            <param name="scope">The callback that returns the scope.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.InScope(System.Func{Ninject.Activation.IContext,System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor,System.Object})">
            <summary>
            Indicates that instances activated via the binding should be re-used as long as the object
            returned by the provided callback remains alive (that is, has not been garbage collected).
            </summary>
            <param name="scope">The callback that returns the scope.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WithConstructorArgument(System.String,System.Object)">
            <summary>
            Indicates that the specified constructor argument should be overridden with the specified value.
            </summary>
            <param name="name">The name of the argument to override.</param>
            <param name="value">The value for the argument.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WithConstructorArgument(System.String,System.Func{Ninject.Activation.IContext,System.Object})">
            <summary>
            Indicates that the specified constructor argument should be overridden with the specified value.
            </summary>
            <param name="name">The name of the argument to override.</param>
            <param name="callback">The callback to invoke to get the value for the argument.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WithPropertyValue(System.String,System.Object)">
            <summary>
            Indicates that the specified property should be injected with the specified value.
            </summary>
            <param name="name">The name of the property to override.</param>
            <param name="value">The value for the property.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WithPropertyValue(System.String,System.Func{Ninject.Activation.IContext,System.Object})">
            <summary>
            Indicates that the specified property should be injected with the specified value.
            </summary>
            <param name="name">The name of the property to override.</param>
            <param name="callback">The callback to invoke to get the value for the property.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WithParameter(Ninject.Parameters.IParameter)">
            <summary>
            Adds a custom parameter to the binding.
            </summary>
            <param name="parameter">The parameter.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WithMetadata(System.String,System.Object)">
            <summary>
            Sets the value of a piece of metadata on the binding.
            </summary>
            <param name="key">The metadata key.</param>
            <param name="value">The metadata value.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WithConstructorArgument(System.String,System.Func{Ninject.Activation.IContext,System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor,System.Object})">
            <summary>
            Indicates that the specified constructor argument should be overridden with the specified value.
            </summary>
            <param name="name">The name of the argument to override.</param>
            <param name="callback">The callback.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WithConstructorArgumentFromActionAttribute``1(System.String,System.Func{``0,System.Object})">
            <summary>
            Indicates that the specified constructor argument should be overridden with the specified value.
            The value is retrieved from an attribute of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <param name="name">The name of the argument to override.</param>
            <param name="callback">The callback.</param>
            <returns>
            The fluent syntax to define more information
            </returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WithConstructorArgumentFromControllerAttribute``1(System.String,System.Func{``0,System.Object})">
            <summary>
            Indicates that the specified constructor argument should be overridden with the specified value.
            The value is retrieved from an attribute on the controller of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <param name="name">The name of the argument to override.</param>
            <param name="callback">The callback.</param>
            <returns>
            The fluent syntax to define more information
            </returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WithPropertyValue(System.String,System.Func{Ninject.Activation.IContext,System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor,System.Object})">
            <summary>
            Indicates that the specified property should be injected with the specified value.
            </summary>
            <param name="name">The name of the property to override.</param>
            <param name="callback">The cllback to retrieve the value.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WithPropertyValueFromActionAttribute``1(System.String,System.Func{``0,System.Object})">
            <summary>
            Indicates that the specified property should be injected with the specified value.
            The value is retrieved from an attribute of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <param name="name">The name of the property to override.</param>
            <param name="callback">The cllback to retrieve the value.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.WithPropertyValueFromControllerAttribute``1(System.String,System.Func{``0,System.Object})">
            <summary>
            Indicates that the specified property should be injected with the specified value.
            The value is retrieved from an attribute on the controller of the specified type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <param name="name">The name of the property to override.</param>
            <param name="callback">The cllback to retrieve the value.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.OnActivation(System.Action{`0})">
            <summary>
            Indicates that the specified callback should be invoked when instances are activated.
            </summary>
            <param name="action">The action callback.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.OnActivation(System.Action{Ninject.Activation.IContext,`0})">
            <summary>
            Indicates that the specified callback should be invoked when instances are activated.
            </summary>
            <param name="action">The action callback.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.OnDeactivation(System.Action{Ninject.Activation.IContext,`0})">
            <summary>
            Indicates that the specified callback should be invoked when instances are deactivated.
            </summary>
            <param name="action">The action callback.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.OnDeactivation(System.Action{`0})">
            <summary>
            Indicates that the specified callback should be invoked when instances are deactivated.
            </summary>
            <param name="action">The action callback.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.OnActivation(System.Action{Ninject.Activation.IContext,System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor,`0})">
            <summary>
            Indicates that the specified callback should be invoked when instances are activated.
            </summary>
            <param name="action">The action callback.</param>
            <returns>The fluent syntax to define more information</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.GetFilterContextParameter(Ninject.Activation.IContext)">
            <summary>
            Gets the filter context parameter.
            </summary>
            <param name="ctx">The context.</param>
            <returns>The filter context parameter from the context parameters.</returns>
        </member>
        <member name="P:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.BindingConfiguration">
            <summary>
            Gets the binding.
            </summary>
            <value>The binding.</value>
        </member>
        <member name="P:Ninject.Web.Mvc.FilterBindingSyntax.FilterFilterBindingBuilder`1.Kernel">
            <summary>
            Gets the kernel.
            </summary>
            <value>The kernel.</value>
        </member>
        <member name="T:Ninject.Web.Mvc.FilterBindingSyntax.IConstructorArgumentSyntaxExtensions">
            <summary>
            Extension methods for IConstructorArgumentSyntax
            </summary>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IConstructorArgumentSyntaxExtensions.FromActionAttribute``1(Ninject.Syntax.IConstructorArgumentSyntax)">
            <summary>
            Specifies that the constructor parameter shall be received from an attribute on the action.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <param name="syntax">The constructor argument syntax.</param>
            <returns>The syntax to specify which value to use.</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.FilterBindingSyntax.IConstructorArgumentSyntaxExtensions.FromControllerAttribute``1(Ninject.Syntax.IConstructorArgumentSyntax)">
            <summary>
            Specifies that the constructor parameter shall be received from an attribute on the controller.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <param name="syntax">The constructor argument syntax.</param>
            <returns>The syntax to specify which value to use.</returns>
        </member>
        <member name="T:Ninject.Web.Mvc.Validation.NinjectDataAnnotationsModelValidatorProvider">
            <summary>
            A DataAnnotationsModelValidatorProvider implementation that injects the validators.
            </summary>
        </member>
        <member name="F:Ninject.Web.Mvc.Validation.NinjectDataAnnotationsModelValidatorProvider.kernel">
            <summary>
            The kernel.
            </summary>
        </member>
        <member name="F:Ninject.Web.Mvc.Validation.NinjectDataAnnotationsModelValidatorProvider.getAttributeMethodInfo">
            <summary>
            The method info to get the attribute from the DataAnnotationsModelValidatorProvider
            </summary>
        </member>
        <member name="M:Ninject.Web.Mvc.Validation.NinjectDataAnnotationsModelValidatorProvider.#ctor(Ninject.IKernel)">
            <summary>
            Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.Validation.NinjectDataAnnotationsModelValidatorProvider"/> class.
            </summary>
            <param name="kernel">The kernel.</param>
        </member>
        <member name="M:Ninject.Web.Mvc.Validation.NinjectDataAnnotationsModelValidatorProvider.GetValidators(System.Web.Mvc.ModelMetadata,System.Web.Mvc.ControllerContext,System.Collections.Generic.IEnumerable{System.Attribute})">
            <summary>
            Gets a list of validators.
            </summary>
            <param name="metadata">The metadata.</param>
            <param name="context">The context.</param>
            <param name="attributes">The list of validation attributes.</param>
            <returns>A list of validators.</returns>
        </member>
        <member name="T:Ninject.Web.Mvc.MvcModule">
            <summary>
            Defines the bindings and plugins of the MVC web extension.
            </summary>
        </member>
        <member name="M:Ninject.Web.Mvc.MvcModule.Load">
            <summary>
            Loads the module into the kernel.
            </summary>
        </member>
        <member name="T:Ninject.Web.Mvc.NinjectDependencyResolver">
            <summary>
            Dependency resolver implementation for ninject.
            </summary>
        </member>
        <member name="F:Ninject.Web.Mvc.NinjectDependencyResolver.resolutionRoot">
            <summary>
            The resolution root used to resolve dependencies.
            </summary>
        </member>
        <member name="M:Ninject.Web.Mvc.NinjectDependencyResolver.#ctor(Ninject.Syntax.IResolutionRoot)">
            <summary>
            Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.NinjectDependencyResolver"/> class.
            </summary>
            <param name="resolutionRoot">The resolution root.</param>
        </member>
        <member name="M:Ninject.Web.Mvc.NinjectDependencyResolver.GetService(System.Type)">
            <summary>
            Gets the service of the specified type.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <returns>The service instance or null if none is configured.</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.NinjectDependencyResolver.GetServices(System.Type)">
            <summary>
            Gets the services of the specidies type.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <returns>All service instances or an empty enumerable if none is configured.</returns>
        </member>
        <member name="T:Ninject.Web.Mvc.NinjectMvcHttpApplicationPlugin">
            <summary>
            The web plugin implementation for MVC
            </summary>
        </member>
        <member name="F:Ninject.Web.Mvc.NinjectMvcHttpApplicationPlugin.kernel">
            <summary>
            The ninject kernel.
            </summary>
        </member>
        <member name="M:Ninject.Web.Mvc.NinjectMvcHttpApplicationPlugin.#ctor(Ninject.IKernel)">
            <summary>
            Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.NinjectMvcHttpApplicationPlugin"/> class.
            </summary>
            <param name="kernel">The kernel.</param>
        </member>
        <member name="M:Ninject.Web.Mvc.NinjectMvcHttpApplicationPlugin.Start">
            <summary>
            Starts this instance.
            </summary>
        </member>
        <member name="M:Ninject.Web.Mvc.NinjectMvcHttpApplicationPlugin.Stop">
            <summary>
            Stops this instance.
            </summary>
        </member>
        <member name="M:Ninject.Web.Mvc.NinjectMvcHttpApplicationPlugin.GetRequestScope(Ninject.Activation.IContext)">
            <summary>
            Gets the request scope.
            </summary>
            <param name="context">The context.</param>
            <returns>The request scope.</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.NinjectMvcHttpApplicationPlugin.CreateDependencyResolver">
            <summary>
            Creates the controller factory that is used to create the controllers.
            </summary>
            <returns>The created controller factory.</returns>
        </member>
        <member name="M:Ninject.Web.Mvc.NinjectMvcHttpApplicationPlugin.RemoveDefaultAttributeFilterProvider">
            <summary>
            Removes the default attribute filter provider.
            </summary>
        </member>
    </members>
</doc>


text:
package Web::Summarizer::Sequence;

use strict;
use warnings;

use Featurizable;

use Clone qw/clone/;
use Function::Parameters qw/:strict/;
use Memoize;

# TODO : turn this into a role parameterized on the object type ?
use Moose;
use MooseX::Aliases;
# TODO : use namespace::sweep instead
# http://blogs.perl.org/users/mike_friedman/2011/10/announcing-namespacesweep.html
use namespace::autoclean;

with( 'Featurizable' );
with( 'Logger' );

use overload
    '@{}'  => sub { my $a = shift; return $a->object_sequence; },
    '=='   => sub { return ( $_[ 0 ]->hash_key eq $_[ 1 ]->hash_key ) || 0 ; },
    "bool" => sub { my $a = shift; return $a->length > 0 }; # is this reasonable ?

# weight
has 'weight' => ( is => 'ro' , isa => 'Num' , default => 1 );

# target object
# TODO: any interest in adding more information about the origin of this sentence ?
has 'object' => ( is => 'ro' , isa => 'Category::UrlData' , required => 1 );
has 'source_id' => ( is => 'ro' , isa => 'Str' , required => 1 );

# object sequence
# TODO : parameterize type of array elements ?
# TODO : rename as simply 'sequence'
has 'object_sequence' => ( is => 'ro' , isa => 'ArrayRef' , lazy => 1 , builder => '_object_sequence_builder' );

# hash key
has 'hash_key' => ( is => 'ro' , isa => 'Str' , init_arg => undef , lazy => 1 , builder => '_hash_key_builder' );

# object hash
has '_object_hash' => ( is => 'ro' , isa => 'HashRef' , init_arg => undef , lazy => 1 , builder => '_object_hash_builder' );
sub _object_hash_builder {
    my $this = shift;
    my %object_hash;
    map { $object_hash{ $_->id }++; } @{ $this->object_sequence };
    return \%object_hash;
}

# return sequence length
sub length {
    my $this = shift;
    return scalar( @{ $this->object_sequence } );
}

# return object at specified index
# TODO: what's the Moose way to implement this ?
sub get_element {
    my $this = shift;
    my $index = shift;
    return $this->object_sequence->[ $index ];
}

# TODO : weight_callback => is this the best way of achieving this ?
# Note : surface_only => necessary, especially for analysis purposes, since some sequences/sentences may be generated without POS information/knowledge
#        TODO : get rid of POS in ngram keys ?
method get_ngrams( $ngram_orders , :$return_vector = 0 , :$weight_callback = undef , :$surface_only = 0 , :$include_punctuation = 0 , :$with_sequence_boundaries = 0 , :$normalize = 0 , :$skip = 0 ) {

    my @ngrams;
    my %_vector_ngrams;
    my %_key_2_surface;

    my @sequence = grep { $include_punctuation || ! $_->is_punctuation } @{ $self->object_sequence };
    if ( $with_sequence_boundaries ) {
	# TODO ... => need to prepend and append special tokens for this purpose
    }

    if ( ! ref( $ngram_orders ) ) {
	$ngram_orders = [ $ngram_orders ];
    }

    foreach my $ngram_order ( @{ $ngram_orders }  ) {

	my @buffer;
	my $buffer_size = 0;
	for (my $i=0; $i<=$#sequence; $i++) {

	    my $current_object = $sequence[ $i ];

	    push @buffer, $current_object;
	    $buffer_size++;

	    if ( $buffer_size > $ngram_order ) {
		shift @buffer;
		$buffer_size--;
	    }

	    my @buffer_copy = @buffer;
	    push @ngrams, \@buffer_copy;

	}

	# TODO : how can we avoid duplicating code
	if ( $#buffer > 0 ) {
	    shift @buffer;
	    push @ngrams, \@buffer;
	}

	if ( $return_vector ) {

	    map {

		my $ngram_verbalized = $self->_ngram_to_surface( $_ , $normalize );
		my $normalized_ngram = $self->_ngram_to_normalized_key( $_ );

		my $ngram_key = $surface_only ? $ngram_verbalized : join( "-" , $ngram_order , $normalized_ngram );

		if ( ! $_vector_ngrams{ $ngram_key }++ ) {
		    $_key_2_surface{ $ngram_key } = $ngram_verbalized;
		}

	    } @ngrams;

	    if ( $weight_callback ) {
		map { $_vector_ngrams{ $_ } *= $weight_callback->( $self , $ngram_order , $_key_2_surface{ $_ } ); } grep { $_vector_ngrams{ $_ } } keys( %_vector_ngrams );
	    }

	}

    }

    if ( $return_vector ) {
	return new Vector( coordinates => \%_vector_ngrams );
    }

    return \@ngrams;

}

# TODO : clear cache in case the sequence is modified in any way ?
memoize( 'vectorize' );
sub vectorize {

    my $this = shift;

    my $vector = $this->get_ngrams( 1 , return_vector => 1 , surface_only => 1 );
    return $vector->scale( $this->weight );

}

sub _ngram_to_normalized_key {

    my $this = shift;
    my $ngram = shift;

    return lc( join( " " , map { $_->key; } @{ $ngram } ) );

}

sub _ngram_to_surface {

    my $this = shift;
    my $ngram = shift;
    my $normalize = shift || 0;

    return lc( join( " " , map { $normalize ? $_->surface_normalized : $_->surface ; } @{ $ngram } ) );

}

sub contains {

    my $this = shift;
    my $object = shift;

    return $this->_object_hash->{ $object->id } || 0;

}

sub filter {

    my $this = shift;
    my $filter = shift;

    my @filtered_sequence = grep { $filter->( $_ ); } @{ $this->object_sequence };

    # TODO : call constructor using $this so that we create a new Sequence object of the same most derived type as the original sequence
    return __PACKAGE__->new( object => $this->object , object_sequence => \@filtered_sequence , source_id => join( "." , $this->source_id , 'filtered' ) );

}

# TODO : to be removed
=pod
sub BUILDARGS {

    my $that = shift;

    my %args = @_;

    # create a (more-or-less deep) copy of object sequence
    # Note : since that field might get overloaded, we apply this transformation to all ArrayRef-like fields
    foreach my $arg_key (keys( %args )) {
	my $arg_value = $args{ $arg_key };
	if ( ref( $arg_value ) eq 'ARRAY' ) {
#	    my @_copy = @{ $arg_value };
#	    $args{ $arg_key } = \@_copy;
	    my $_copy = clone( $arg_value );
	    $args{ $arg_key } = $_copy;
	}
    }

    return \%args;

}
=cut

__PACKAGE__->meta->make_immutable;

1;

redpajama_set_name: RedPajamaGithub


text:
require 'json'
require 'httparty'

require 'bag/version'
require 'bag/base'
require 'bag/adres'
require 'bag/gemeente'


text:
package org.iq80.leveldb;

/**
 * A database can be configured with a custom FilterPolicy object.
 * This object is responsible for creating a small filter from a set
 * of keys.  These filters are stored in leveldb and are consulted
 * automatically by leveldb to decide whether or not to read some
 * information from disk. In many cases, a filter can cut down the
 * number of disk seeks form a handful to a single disk seek per
 * DB::Get() call.
 * <p>
 * Most people will want to use the builtin bloom filter support (see
 * NewBloomFilterPolicy() below).
 *
 * @author Honore Vasconcelos
 */
public interface XFilterPolicy
{
}


text:
<Record>
<Term>Menadiol</Term>
<SemanticType>Pharmacologic Substance</SemanticType>
<ParentTerm>Vitamin K</ParentTerm>
<ClassificationPath>Chemicals_and_Drugs_Kind/Drug, Food, Chemical or Biomedical Material/Drug or Chemical by Structure/Organic Chemical/Quinone Compound/Vitamin K/Menadiol</ClassificationPath>
<BroaderTerm>Drug or Chemical by Structure</BroaderTerm>
<BroaderTerm>Chemicals_and_Drugs_Kind</BroaderTerm>
<BroaderTerm>Vitamin K</BroaderTerm>
<BroaderTerm>Quinone Compound</BroaderTerm>
<BroaderTerm>Organic Chemical</BroaderTerm>
<BroaderTerm>Menadiol</BroaderTerm>
<BroaderTerm>Drug, Food, Chemical or Biomedical Material</BroaderTerm>
<Synonym>MENADIOL</Synonym>
<Synonym>Menadiol</Synonym>
<Source>NCI Thesaurus</Source>
</Record>


text:
[![Build Status](https://travis-ci.org/luckymarmot/Paw-PostmanImporter.svg?branch=master)](https://travis-ci.org/luckymarmot/Paw-PostmanImporter)

# Postman Importer (Paw Extension)

A [Paw Extension](http://luckymarmot.com/paw/extensions/) to import [Postman Files](https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm) into Paw. It can import files with the following extensions:

- `.postman_dump`
- `.postman_environment`
- `.postman-collection`

## Installation

Easily install this Paw Extension: [Install Postman Importer](http://luckymarmot.com/paw/extensions/PostmanImporter)

## How to use?

* In Postman, hit the "Download all data" button
* Save the file
* In Paw, go to File menu, then Import...
* Pick the saved Postman file, and make sure the Format is "Postman Importer"

## Development

### Prerequisites

```shell
nvm install
nvm use
npm install
```

### Build & Install

```shell
make build
```

### Install

```shell
make install
```

## License

This Paw Extension is released under the [MIT License](LICENSE). Feel free to fork, and modify!

Copyright © 2014 Paw Inc.

## Contributors

See [Contributors](https://github.com/luckymarmot/Paw-PostmanImporter/graphs/contributors).


text:
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
require 'capybara/rails'
require 'capybara/minitest'

class ActiveSupport::TestCase
  # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
  fixtures :all

  # Add more helper methods to be used by all tests here...
end

class ActionDispatch::IntegrationTest
  # Make the Capybara DSL available in all integration tests
  include Capybara::DSL
  # Make `assert_*` methods behave like Minitest assertions
  #include Capybara::Minitest::Assertions

  test 'open an existing recipe' do
    recipe = recipes(:doughnut)
    visit recipes_path
    assert page.has_content? recipe.title

    click_link(recipe.title)
    assert page.has_content?  recipe.cooking_instructions
  end

  test 'create a new recipe' do
    name = 'root'
    password = 'root'
    # taken from https://stackoverflow.com/a/4345708
    if page.driver.respond_to?(:basic_auth)
      page.driver.basic_auth(name, password)
    elsif page.driver.respond_to?(:basic_authorize)
      page.driver.basic_authorize(name, password)
    elsif page.driver.respond_to?(:browser) && page.driver.browser.respond_to?(:basic_authorize)
      page.driver.browser.basic_authorize(name, password)
    else
      raise "I don't know how to log in!"
    end
    visit recipes_path
    click_link('Add new recipe') # static string is bad, we know
    assert page.has_content? 'Title'

    fill_in('Title', with: 'Chocolate Sorbet')
    fill_in('Duration', with: '60')
    fill_in('Difficulty', with: '4')
    fill_in('Cooking instructions', with: 'Mix cocoa with water and freeze it')
    click_button('Create Recipe')
    assert page.has_content? 'Chocolate Sorbet'

    visit recipes_path
    assert page.has_content? 'Chocolate Sorbet'

    click_link('Chocolate Sorbet')
    assert page.has_content? 'Mix cocoa with water and freeze it'
  end

  # Reset sessions and driver between tests
  # Use super wherever this method is redefined in your individual test classes
  def teardown
    Capybara.reset_sessions!
    Capybara.use_default_driver
  end
end


text:
from oslo_versionedobjects import fields

from magnum.db import api as dbapi
from magnum.objects import base

@base.MagnumObjectRegistry.register
class Stats(base.MagnumObject, base.MagnumObjectDictCompat):
    # Version 1.0: Initial version

    VERSION = '1.0'

    dbapi = dbapi.get_instance()

    fields = {
        'clusters': fields.IntegerField(),
        'nodes': fields.IntegerField(nullable=True)
    }

    @base.remotable_classmethod
    def get_cluster_stats(cls, context, project_id=None):
        """Return cluster stats for the given project.

        :param context: The security context
        :param project_id: project id
        """
        clusters, nodes = cls.dbapi.get_cluster_stats(context, project_id)
        return cls(clusters=clusters, nodes=nodes)


text:
#include "ImguiLuaInterface.h"
#include <stdio.h>
#include <imgui.h>
#include <imgui_extensions.h>
#include <imgui_node_editor.h>
#include <deque>

#include "systems/RenderSystem.h"
#include "sol.hpp"

namespace Gsage {

  ImguiTextBuffer::ImguiTextBuffer(int size, const char* value)
    : mBuffer(new char[size]())
    , mSize(size)
  {
  }

  ImguiTextBuffer::~ImguiTextBuffer()
  {
    delete[] mBuffer;
  }

  std::string ImguiTextBuffer::read() const
  {
    return std::string(mBuffer);
  }

  char* ImguiTextBuffer::read()
  {
    return mBuffer;
  }

  bool ImguiTextBuffer::write(const std::string& value)
  {
    if(value.size() > mSize) {
      return false;
    }
    strcpy(mBuffer, value.c_str());
    return true;
  }

  // define ENABLE_IM_LUA_END_STACK
  // to keep track of end and begins and clean up the imgui stack
  // if lua errors

#ifdef ENABLE_IM_LUA_END_STACK
  // Stack for imgui begin and end
  std::deque<int> endStack;
  static void AddToStack(int type) {
    endStack.push_back(type);
  }

  static void PopEndStack(int type) {
    if (!endStack.empty()) {
      endStack.pop_back(); // hopefully the type matches
    }
  }

  static void ImEndStack(int type);

#endif

#define IMGUI_FUNCTION_DRAW_LIST(name) \
  static int impl_draw_list_##name(lua_State *L) { \
    int max_args = lua_gettop(L); \
    int arg = 1; \
    int stackval = 0;

#define IMGUI_FUNCTION(name) \
    static int impl_##name(lua_State *L) { \
      int max_args = lua_gettop(L); \
      int arg = 1; \
      int stackval = 0;

      // I use OpenGL so this is a GLuint
      // Using unsigned int cause im lazy don't copy me
#define IM_TEXTURE_ID_ARG(name) \
      const ImTextureID name = (ImTextureID)luaL_checkinteger(L, arg++);

#define OPTIONAL_LABEL_ARG(name) \
      const char* name; \
      if (arg <= max_args) { \
        name = lua_tostring(L, arg++); \
      } else { \
        name = NULL; \
      }

#define LABEL_ARG(name) \
      size_t i_##name##_size; \
      const char * name = luaL_checklstring(L, arg++, &(i_##name##_size));

#define IM_VEC_2_ARG(name)\
      const lua_Number i_##name##_x = luaL_checknumber(L, arg++); \
      const lua_Number i_##name##_y = luaL_checknumber(L, arg++); \
      const ImVec2 name((double)i_##name##_x, (double)i_##name##_y);

#define OPTIONAL_IM_VEC_2_ARG(name, x, y) \
      lua_Number i_##name##_x = x; \
      lua_Number i_##name##_y = y; \
      if (arg <= max_args - 1) { \
        i_##name##_x = luaL_checknumber(L, arg++); \
        i_##name##_y = luaL_checknumber(L, arg++); \
      } \
      const ImVec2 name((double)i_##name##_x, (double)i_##name##_y);

#define IM_VEC_4_ARG(name) \
      const lua_Number i_##name##_x = luaL_checknumber(L, arg++); \
      const lua_Number i_##name##_y = luaL_checknumber(L, arg++); \
      const lua_Number i_##name##_z = luaL_checknumber(L, arg++); \
      const lua_Number i_##name##_w = luaL_checknumber(L, arg++); \
      const ImVec4 name((double)i_##name##_x, (double)i_##name##_y, (double)i_##name##_z, (double)i_##name##_w);

#define OPTIONAL_IM_VEC_4_ARG(name, x, y, z, w) \
      lua_Number i_##name##_x = x; \
      lua_Number i_##name##_y = y; \
      lua_Number i_##name##_z = z; \
      lua_Number i_##name##_w = w; \
      if (arg <= max_args - 1) { \
        i_##name##_x = luaL_checknumber(L, arg++); \
        i_##name##_y = luaL_checknumber(L, arg++); \
        i_##name##_z = luaL_checknumber(L, arg++); \
        i_##name##_w = luaL_checknumber(L, arg++); \
      } \
      const ImVec4 name((double)i_##name##_x, (double)i_##name##_y, (double)i_##name##_z, (double)i_##name##_w);

#define NUMBER_ARG(name)\
      lua_Number name = luaL_checknumber(L, arg++);

#define OPTIONAL_NUMBER_ARG(name, otherwise)\
      lua_Number name = otherwise; \
      if (arg <= max_args) { \
        name = lua_tonumber(L, arg++); \
      }

#define FLOAT_POINTER_ARG(name) \
      float i_##name##_value = luaL_checknumber(L, arg++); \
      float* name = &(i_##name##_value);

#define END_FLOAT_POINTER(name) \
      if (name != NULL) { \
        lua_pushnumber(L, i_##name##_value); \
        stackval++; \
      }

#define OPTIONAL_INT_ARG(name, otherwise)\
      int name = otherwise; \
      if (arg <= max_args) { \
        name = (int)lua_tonumber(L, arg++); \
      }

#define INT_ARG(name) \
      const int name = (int)luaL_checknumber(L, arg++);

#define OPTIONAL_UINT_ARG(name, otherwise)\
      unsigned int name = otherwise; \
      if (arg <= max_args) { \
        name = (unsigned int)lua_tounsigned(L, arg++); \
      }

#define UINT_ARG(name) \
      const unsigned int name = (unsigned int)luaL_checkinteger(L, arg++);

#define INT_POINTER_ARG(name) \
      int i_##name##_value = (int)luaL_checkinteger(L, arg++); \
      int* name = &(i_##name##_value);

#define END_INT_POINTER(name) \
      if (name != NULL) { \
        lua_pushnumber(L, i_##name##_value); \
        stackval++; \
      }

#define UINT_POINTER_ARG(name) \
      unsigned int i_##name##_value = (unsigned int)luaL_checkinteger(L, arg++); \
      unsigned int* name = &(i_##name##_value);

#define END_UINT_POINTER(name) \
      if (name != NULL) { \
        lua_pushnumber(L, i_##name##_value); \
        stackval++; \
      }

#define BOOL_POINTER_ARG(name) \
      bool i_##name##_value = lua_toboolean(L, arg++); \
      bool* name = &(i_##name##_value);

#define OPTIONAL_BOOL_POINTER_ARG(name) \
      bool i_##name##_value; \
      bool* name = NULL; \
      if (arg <= max_args) { \
        i_##name##_value = lua_toboolean(L, arg++); \
        name = &(i_##name##_value); \
      }

#define OPTIONAL_BOOL_ARG(name, otherwise) \
      bool name = otherwise; \
      if (arg <= max_args) { \
        name = lua_toboolean(L, arg++); \
      }

#define BOOL_ARG(name) \
      bool name = lua_toboolean(L, arg++);

#define CALL_FUNCTION(name, retType,...) \
      retType ret = ImGui::name(__VA_ARGS__);

#define DRAW_LIST_CALL_FUNCTION(name, retType,...) \
      retType ret = ImGui::GetWindowDrawList()->name(__VA_ARGS__);

#define CALL_FUNCTION_NO_RET(name, ...) \
      ImGui::name(__VA_ARGS__);

#define DRAW_LIST_CALL_FUNCTION_NO_RET(name, ...) \
      ImGui::GetWindowDrawList()->name(__VA_ARGS__);

#define PUSH_NUMBER(name) \
      lua_pushnumber(L, name); \
      stackval++;

#define PUSH_BOOL(name) \
      lua_pushboolean(L, (int) name); \
      stackval++;

#define END_BOOL_POINTER(name) \
      if (name != NULL) { \
        lua_pushboolean(L, (int)i_##name##_value); \
        stackval++; \
      }

#define END_IMGUI_FUNC \
      return stackval; \
    }

#ifdef ENABLE_IM_LUA_END_STACK
#define IF_RET_ADD_END_STACK(type) \
    if (ret) { \
      AddToStack(type); \
    }

#define ADD_END_STACK(type) \
    AddToStack(type);

#define POP_END_STACK(type) \
    PopEndStack(type);

#define END_STACK_START \
    static void ImEndStack(int type) { \
      switch(type) {

#define END_STACK_OPTION(type, function) \
        case type: \
                   ImGui::function(); \
        break;

#define END_STACK_END \
      } \
    }
#else
#define END_STACK_START
#define END_STACK_OPTION(type, function)
#define END_STACK_END
#define IF_RET_ADD_END_STACK(type)
#define ADD_END_STACK(type)
#define POP_END_STACK(type)
#endif

#include "ImguiLuaIterator.h"

    static const struct luaL_Reg imguilib [] = {
#undef IMGUI_FUNCTION
#define IMGUI_FUNCTION(name) {#name, impl_##name},
#undef IMGUI_FUNCTION_DRAW_LIST
#define IMGUI_FUNCTION_DRAW_LIST(name) {"DrawList_" #name, impl_draw_list_##name},
      // These defines are just redefining everything to nothing so
      // we can get the function names
#undef IM_TEXTURE_ID_ARG
#define IM_TEXTURE_ID_ARG(name)
#undef OPTIONAL_LABEL_ARG
#define OPTIONAL_LABEL_ARG(name)
#undef LABEL_ARG
#define LABEL_ARG(name)
#undef IM_VEC_2_ARG
#define IM_VEC_2_ARG(name)
#undef OPTIONAL_IM_VEC_2_ARG
#define OPTIONAL_IM_VEC_2_ARG(name, x, y)
#undef IM_VEC_4_ARG
#define IM_VEC_4_ARG(name)
#undef OPTIONAL_IM_VEC_4_ARG
#define OPTIONAL_IM_VEC_4_ARG(name, x, y, z, w)
#undef NUMBER_ARG
#define NUMBER_ARG(name)
#undef OPTIONAL_NUMBER_ARG
#define OPTIONAL_NUMBER_ARG(name, otherwise)
#undef FLOAT_POINTER_ARG
#define FLOAT_POINTER_ARG(name)
#undef END_FLOAT_POINTER
#define END_FLOAT_POINTER(name)
#undef OPTIONAL_INT_ARG
#define OPTIONAL_INT_ARG(name, otherwise)
#undef INT_ARG
#define INT_ARG(name)
#undef OPTIONAL_UINT_ARG
#define OPTIONAL_UINT_ARG(name, otherwise)
#undef UINT_ARG
#define UINT_ARG(name)
#undef INT_POINTER_ARG
#define INT_POINTER_ARG(name)
#undef END_INT_POINTER
#define END_INT_POINTER(name)
#undef UINT_POINTER_ARG
#define UINT_POINTER_ARG(name)
#undef END_UINT_POINTER
#define END_UINT_POINTER(name)
#undef BOOL_POINTER_ARG
#define BOOL_POINTER_ARG(name)
#undef OPTIONAL_BOOL_POINTER_ARG
#define OPTIONAL_BOOL_POINTER_ARG(name)
#undef OPTIONAL_BOOL_ARG
#define OPTIONAL_BOOL_ARG(name, otherwise)
#undef BOOL_ARG
#define BOOL_ARG(name)
#undef CALL_FUNCTION
#define CALL_FUNCTION(name, retType, ...)
#undef DRAW_LIST_CALL_FUNCTION
#define DRAW_LIST_CALL_FUNCTION(name, retType, ...)
#undef CALL_FUNCTION_NO_RET
#define CALL_FUNCTION_NO_RET(name, ...)
#undef DRAW_LIST_CALL_FUNCTION_NO_RET
#define DRAW_LIST_CALL_FUNCTION_NO_RET(name, ...)
#undef PUSH_NUMBER
#define PUSH_NUMBER(name)
#undef PUSH_BOOL
#define PUSH_BOOL(name)
#undef END_BOOL_POINTER
#define END_BOOL_POINTER(name)
#undef END_IMGUI_FUNC
#define END_IMGUI_FUNC
#undef END_STACK_START
#define END_STACK_START
#undef END_STACK_OPTION
#define END_STACK_OPTION(type, function)
#undef END_STACK_END
#define END_STACK_END
#undef IF_RET_ADD_END_STACK
#define IF_RET_ADD_END_STACK(type)
#undef ADD_END_STACK
#define ADD_END_STACK(type)
#undef POP_END_STACK
#define POP_END_STACK(type)
#include "ImguiLuaIterator.h"
    {"Button", impl_Button},
    {NULL, NULL}
  };

  bool InputText(const char* label, ImguiTextBuffer& buffer, ImGuiInputTextFlags flags = 0)
  {
    return ImGui::InputText(label, buffer.read(), buffer.size(), flags);
  }

  bool InputTextWithCallback(const char* label, ImguiTextBuffer& buffer, ImGuiInputTextFlags flags, sol::function callback)
  {
    return ImGui::InputText(label, buffer.read(), buffer.size(), flags, [](ImGuiTextEditCallbackData* data) {
        sol::function cb = *static_cast<sol::function*>(data->UserData);
        int res = cb(data);
        return res;
    }, &callback);
  }

  void ImguiLuaInterface::addLuaBindings(sol::state_view& lua) {
    lua_State* L = lua.lua_state();
    lua_newtable(L);
    luaL_setfuncs(L, imguilib, 0);
    lua_setglobal(L, "imgui");

    // Enums not handled by iterator yet
    lua_pushnumber(L, ImGuiWindowFlags_NoTitleBar);
    lua_setglobal(L, "ImGuiWindowFlags_NoTitleBar");
    lua_pushnumber(L, ImGuiWindowFlags_NoResize);
    lua_setglobal(L, "ImGuiWindowFlags_NoResize");
    lua_pushnumber(L, ImGuiWindowFlags_NoMove);
    lua_setglobal(L, "ImGuiWindowFlags_NoMove");
    lua_pushnumber(L, ImGuiWindowFlags_NoScrollbar);
    lua_setglobal(L, "ImGuiWindowFlags_NoScrollbar");
    lua_pushnumber(L, ImGuiWindowFlags_NoScrollWithMouse);
    lua_setglobal(L, "ImGuiWindowFlags_NoScrollWithMouse");
    lua_pushnumber(L, ImGuiWindowFlags_NoCollapse);
    lua_setglobal(L, "ImGuiWindowFlags_NoCollapse");
    lua_pushnumber(L, ImGuiWindowFlags_AlwaysAutoResize);
    lua_setglobal(L, "ImGuiWindowFlags_AlwaysAutoResize");
    lua_pushnumber(L, ImGuiWindowFlags_NoSavedSettings);
    lua_setglobal(L, "ImGuiWindowFlags_NoSavedSettings");
    lua_pushnumber(L, ImGuiWindowFlags_NoInputs);
    lua_setglobal(L, "ImGuiWindowFlags_NoInputs");
    lua_pushnumber(L, ImGuiWindowFlags_MenuBar);
    lua_setglobal(L, "ImGuiWindowFlags_MenuBar");
    lua_pushnumber(L, ImGuiWindowFlags_HorizontalScrollbar);
    lua_setglobal(L, "ImGuiWindowFlags_HorizontalScrollbar");
    lua_pushnumber(L, ImGuiWindowFlags_NoFocusOnAppearing);
    lua_setglobal(L, "ImGuiWindowFlags_NoFocusOnAppearing");
    lua_pushnumber(L, ImGuiWindowFlags_NoBringToFrontOnFocus);
    lua_setglobal(L, "ImGuiWindowFlags_NoBringToFrontOnFocus");
    lua_pushnumber(L, ImGuiWindowFlags_ChildWindow);
    lua_setglobal(L, "ImGuiWindowFlags_ChildWindow");
    lua_pushnumber(L, ImGuiWindowFlags_Tooltip);
    lua_setglobal(L, "ImGuiWindowFlags_Tooltip");
    lua_pushnumber(L, ImGuiWindowFlags_Popup);
    lua_setglobal(L, "ImGuiWindowFlags_Popup");
    lua_pushnumber(L, ImGuiWindowFlags_Modal);
    lua_setglobal(L, "ImGuiWindowFlags_Modal");
    lua_pushnumber(L, ImGuiWindowFlags_ChildMenu);
    lua_setglobal(L, "ImGuiWindowFlags_ChildMenu");
    lua_pushnumber(L, ImGuiWindowFlags_AlwaysUseWindowPadding);
    lua_setglobal(L, "ImGuiWindowFlags_AlwaysUseWindowPadding");
    lua_pushnumber(L, ImGuiInputTextFlags_CharsDecimal);
    lua_setglobal(L, "ImGuiInputTextFlags_CharsDecimal");
    lua_pushnumber(L, ImGuiInputTextFlags_CharsHexadecimal);
    lua_setglobal(L, "ImGuiInputTextFlags_CharsHexadecimal");
    lua_pushnumber(L, ImGuiInputTextFlags_CharsUppercase);
    lua_setglobal(L, "ImGuiInputTextFlags_CharsUppercase");
    lua_pushnumber(L, ImGuiInputTextFlags_CharsNoBlank);
    lua_setglobal(L, "ImGuiInputTextFlags_CharsNoBlank");
    lua_pushnumber(L, ImGuiInputTextFlags_AutoSelectAll);
    lua_setglobal(L, "ImGuiInputTextFlags_AutoSelectAll");
    lua_pushnumber(L, ImGuiInputTextFlags_EnterReturnsTrue);
    lua_setglobal(L, "ImGuiInputTextFlags_EnterReturnsTrue");
    lua_pushnumber(L, ImGuiInputTextFlags_CallbackCompletion);
    lua_setglobal(L, "ImGuiInputTextFlags_CallbackCompletion");
    lua_pushnumber(L, ImGuiInputTextFlags_CallbackHistory);
    lua_setglobal(L, "ImGuiInputTextFlags_CallbackHistory");
    lua_pushnumber(L, ImGuiInputTextFlags_CallbackAlways);
    lua_setglobal(L, "ImGuiInputTextFlags_CallbackAlways");
    lua_pushnumber(L, ImGuiInputTextFlags_CallbackCharFilter);
    lua_setglobal(L, "ImGuiInputTextFlags_CallbackCharFilter");
    lua_pushnumber(L, ImGuiInputTextFlags_AllowTabInput);
    lua_setglobal(L, "ImGuiInputTextFlags_AllowTabInput");
    lua_pushnumber(L, ImGuiInputTextFlags_CtrlEnterForNewLine);
    lua_setglobal(L, "ImGuiInputTextFlags_CtrlEnterForNewLine");
    lua_pushnumber(L, ImGuiInputTextFlags_NoHorizontalScroll);
    lua_setglobal(L, "ImGuiInputTextFlags_NoHorizontalScroll");
    lua_pushnumber(L, ImGuiInputTextFlags_AlwaysInsertMode);
    lua_setglobal(L, "ImGuiInputTextFlags_AlwaysInsertMode");
    lua_pushnumber(L, ImGuiInputTextFlags_ReadOnly);
    lua_setglobal(L, "ImGuiInputTextFlags_ReadOnly");
    lua_pushnumber(L, ImGuiInputTextFlags_Password);
    lua_setglobal(L, "ImGuiInputTextFlags_Password");
    lua_pushnumber(L, ImGuiInputTextFlags_Multiline);
    lua_setglobal(L, "ImGuiInputTextFlags_Multiline");
    lua_pushnumber(L, ImGuiSelectableFlags_DontClosePopups);
    lua_setglobal(L, "ImGuiSelectableFlags_DontClosePopups");
    lua_pushnumber(L, ImGuiSelectableFlags_SpanAllColumns);
    lua_setglobal(L, "ImGuiSelectableFlags_SpanAllColumns");
    lua_pushnumber(L, ImGuiStyleVar_FramePadding);
    lua_setglobal(L, "ImGuiStyleVar_FramePadding");
    lua_pushnumber(L, ImGuiStyleVar_FrameRounding);
    lua_setglobal(L, "ImGuiStyleVar_FrameRounding");
    lua_pushnumber(L, ImGuiStyleVar_ItemSpacing);
    lua_setglobal(L, "ImGuiStyleVar_ItemSpacing");
    lua_pushnumber(L, ImGuiStyleVar_WindowPadding);
    lua_setglobal(L, "ImGuiStyleVar_WindowPadding");
    lua_pushnumber(L, ImGuiStyleVar_WindowRounding);
    lua_setglobal(L, "ImGuiStyleVar_WindowRounding");
    lua_pushnumber(L, ImGuiKey_Tab);
    lua_setglobal(L, "ImGuiKey_Tab");
    lua_pushnumber(L, ImGuiKey_LeftArrow);
    lua_setglobal(L, "ImGuiKey_LeftArrow");
    lua_pushnumber(L, ImGuiKey_RightArrow);
    lua_setglobal(L, "ImGuiKey_RightArrow");
    lua_pushnumber(L, ImGuiKey_UpArrow);
    lua_setglobal(L, "ImGuiKey_UpArrow");
    lua_pushnumber(L, ImGuiKey_DownArrow);
    lua_setglobal(L, "ImGuiKey_DownArrow");
    lua_pushnumber(L, ImGuiKey_PageUp);
    lua_setglobal(L, "ImGuiKey_PageUp");
    lua_pushnumber(L, ImGuiKey_PageDown);
    lua_setglobal(L, "ImGuiKey_PageDown");
    lua_pushnumber(L, ImGuiKey_Home);
    lua_setglobal(L, "ImGuiKey_Home");
    lua_pushnumber(L, ImGuiCol_Text);
    lua_setglobal(L, "ImGuiCol_Text");
    lua_pushnumber(L, ImGuiCol_FrameBg);
    lua_setglobal(L, "ImGuiCol_FrameBg");
    lua_pushnumber(L, ImGuiCol_WindowBg);
    lua_setglobal(L, "ImGuiCol_WindowBg");
    lua_pushnumber(L, ImGuiCol_ChildWindowBg);
    lua_setglobal(L, "ImGuiCol_ChildWindowBg");
    lua_pushnumber(L, ImGuiCol_Border);
    lua_setglobal(L, "ImGuiCol_Border");
    lua_pushnumber(L, ImGuiCol_BorderShadow);
    lua_setglobal(L, "ImGuiCol_BorderShadow");
    lua_pushnumber(L, ImGuiCol_Separator);
    lua_setglobal(L, "ImGuiCol_Separator");

    lua_pushnumber(L, ImGuiTreeNodeFlags_Leaf);
    lua_setglobal(L, "ImGuiTreeNodeFlags_Leaf");

    sol::table imgui = lua["imgui"];

    imgui["InputFloatN"] = [] (const std::string& label, sol::table t, const int length, int decimal_precision, ImGuiInputTextFlags extra_flags) -> bool {
      float* values = new float[length];
      for(int i = 0; i < length; i++) {
        values[i] = t[i + 1];
      }

      bool ret = false;

      switch(length) {
        case 2:
          ret = ImGui::InputFloat2(label.c_str(), values, decimal_precision, extra_flags);
          break;
        case 3:
          ret = ImGui::InputFloat3(label.c_str(), values, decimal_precision, extra_flags);
          break;
        case 4:
          ret = ImGui::InputFloat4(label.c_str(), values, decimal_precision, extra_flags);
          break;
        default:
          return false;
      }

      for(int i = 0; i < length; i++) {
        t[i + 1] = values[i];
      }

      delete[] values;
      return ret;
    };

    imgui["DragFloatN"] = [] (const std::string& label, sol::table t, const int length, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const std::string& display_format = "%.3f", float power = 1.0f) -> bool {
      float* values = new float[length];
      for(int i = 0; i < length; i++) {
        values[i] = t[i + 1];
      }

      bool ret = false;

      switch(length) {
        case 2:
          ret = ImGui::DragFloat2(label.c_str(), values, v_speed, v_min, v_max, display_format.c_str(), power);
          break;
        case 3:
          ret = ImGui::DragFloat3(label.c_str(), values, v_speed, v_min, v_max, display_format.c_str(), power);
          break;
        case 4:
          ret = ImGui::DragFloat4(label.c_str(), values, v_speed, v_min, v_max, display_format.c_str(), power);
          break;
        default:
          return false;
      }

      for(int i = 0; i < length; i++) {
        t[i + 1] = values[i];
      }

      delete[] values;
      return ret;
    };

    imgui["TextBuffer"] = [] (int size) -> std::shared_ptr<ImguiTextBuffer> {
      return std::shared_ptr<ImguiTextBuffer>(new ImguiTextBuffer(size));
    };

    imgui.new_usertype<ImguiTextBuffer>("ImguiTextBuffer",
        "write", &ImguiTextBuffer::write,
        "read", (std::string(ImguiTextBuffer::*)()const)&ImguiTextBuffer::read
    );

//ListBox(const char* label, int* current_item, const char* const items[], int items_count, int height_in_items = -1);

    imgui["InputText"] = InputText;
    imgui["InputTextWithCallback"] = InputTextWithCallback;

    imgui.new_usertype<ImGuiTextEditCallbackData>("ImGuiTextEditCallbackData",
        "eventFlag", &ImGuiTextEditCallbackData::EventFlag,
        "insertChars", &ImGuiTextEditCallbackData::InsertChars,
        "deleteChars", &ImGuiTextEditCallbackData::DeleteChars,
        "cursorPos", &ImGuiTextEditCallbackData::CursorPos,
        "getBuf", [] (ImGuiTextEditCallbackData* data) { return std::string(data->Buf); },
        "setBuf", [] (ImGuiTextEditCallbackData* data, const std::string& value) {
            strcpy(data->Buf, value.c_str());
            return value.size();
          },
        "bufSize", &ImGuiTextEditCallbackData::BufSize,
        "eventKey", &ImGuiTextEditCallbackData::EventKey,
        "bufDirty", &ImGuiTextEditCallbackData::BufDirty,
        "selectionStart", &ImGuiTextEditCallbackData::SelectionStart,
        "selectionEnd", &ImGuiTextEditCallbackData::SelectionEnd,
        "bufTextLen", &ImGuiTextEditCallbackData::BufTextLen
    );

    imgui.new_usertype<ImVector<char>>("ImVector",
        "data", &ImVector<char>::Data
    );

    imgui["SetDragDropPayload"] = [] (const std::string& label, void* data) {
      ImGui::SetDragDropPayload(label.c_str(), data, 0);
    };

    imgui["PushStyleColor_U32"] = [] (ImGuiCol idx, ImU32 col) {
      ImGui::PushStyleColor(idx, ImGui::ColorConvertU32ToFloat4(col));
    };

    imgui["DisplaySize"] = [] () {
      ImVec2 size = ImGui::GetIO().DisplaySize;
      return std::make_tuple(size.x, size.y);
    };

    imgui["SetWantCaptureMouse"] = [](bool value) {
      ImGui::GetIO().WantCaptureMouse = value;
    };

    imgui["GetWantCaptureMouse"] = []() {
      return ImGui::GetIO().WantCaptureMouse;
    };

    imgui["KeyCtrl"] = []() {
      return ImGui::GetIO().KeyCtrl;
    };

    imgui["KeyShift"] = []() {
      return ImGui::GetIO().KeyShift;
    };

    imgui["KeyAlt"] = []() {
      return ImGui::GetIO().KeyAlt;
    };

    imgui["Texture"] = [](TexturePtr texture) {
      if (!texture->isValid() || !texture->hasData()) {
        return false;
      }

      ImVec2 size;

      std::tie(size.x, size.y) = texture->getSize();

      ImGui::Image(texture.get(), size);
      return true;
    };

    imgui["Scale"] = []() {
      ImGuiIO io = ImGui::GetIO();
      return std::make_tuple(io.DisplayFramebufferScale.x, io.DisplayFramebufferScale.y);
    };

    imgui["CreateEditor"] = [](const char* configFile) -> void* {
      ax::NodeEditor::Config config;
      config.SettingsFile = configFile;
      return ax::NodeEditor::CreateEditor(&config);
    };

    imgui["DestroyEditor"] = [](void* ctx) {
      ax::NodeEditor::DestroyEditor((ax::NodeEditor::EditorContext*)ctx);
    };

    imgui["NodeEditorBegin"] = [](void* ctx, const char* id, float x, float y) {
      ax::NodeEditor::SetCurrentEditor((ax::NodeEditor::EditorContext*)ctx);
      ax::NodeEditor::Begin(id, ImVec2(x, y));
    };

    imgui["BeginNode"] = [](int uniqueId) {
      ax::NodeEditor::BeginNode(uniqueId);
    };
    imgui["EndNode"] = [](){
      ax::NodeEditor::EndNode();
    };

    imgui["BeginPin"] = [](int uniqueId, ax::NodeEditor::PinKind kind){
      ax::NodeEditor::BeginPin(uniqueId, kind);
    };
    imgui["EndPin"] = []() {
      ax::NodeEditor::EndPin();
    };

    imgui["NodeEditorPinKind"] = lua.create_table_with(
      "Input", ax::NodeEditor::PinKind::Input,
      "Output", ax::NodeEditor::PinKind::Output
    );

    imgui["NodeEditorEnd"] = []() {
      ax::NodeEditor::End();
      ax::NodeEditor::SetCurrentEditor(nullptr);
    };
  }
}