-- Copyright 2016 Stanford University
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
--     http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.

-- runs-with:
-- [[]]

-- FIXME: Breaks SPMD optimization
-- [["-ll:cpu", "4", "-fflow-spmd", "1", "-fflow-spmd-shardsize", "3"]]

-- This test triggered a bug in RDIR (even without SPMD) that caused a
-- cycle due to the application of reductions to multiple partitions.

import "regent"

local c = regentlib.c

fspace node { nodal_mass : double }

fspace elem(rn_ghost : region(node), rn_owned : region(node)) { }

local wild_elem = elem(wild, wild)

task init_nodes(rn : region(node))
where
  reads writes(rn.{ nodal_mass })
do
end

task init_elems(rn_ghost  : region(node),
                rn_owned  : region(node),
                re_owned  : region(elem(rn_ghost, rn_owned)))
where
  reduces +(rn_owned.nodal_mass),
  reduces +(rn_ghost.nodal_mass)
do
end

task main()
  var num_elems = 42
  var num_nodes = 137

  var rn = region(ispace(ptr, num_nodes), node)
  var re = region(ispace(ptr, num_elems), wild_elem)
  new(ptr(node, rn), num_nodes)
  new(ptr(wild_elem, re), num_elems)

  var colors = ispace(int1d, 10)
  var p_owned_nodes = partition(equal, rn, colors)
  var p_ghost_nodes = p_owned_nodes | p_owned_nodes
  var p_owned_elems = partition(equal, re, colors)

  __demand(__spmd)
  do
    for part_id = 0, 10 do
      init_nodes(p_owned_nodes[part_id])
    end

    for part_id = 0, 10 do
      init_elems(p_ghost_nodes[part_id], p_owned_nodes[part_id],
                 p_owned_elems[part_id])
    end
  end
end
regentlib.start(main)


-- Copyright 2016 Stanford University, NVIDIA Corporation
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
--     http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.

-- runs-with:
-- [["-ll:cpu", "4"]]

import "regent"
import "bishop"

local c = bishoplib.c

mapper

task task#foo[index=$p] {
  target : processors[isa=x86][($p[0] + $p[1] + 1) % processors[isa=x86].size];
}

task {
  target : processors[isa=x86][1];
}

end

task foo(i : int2d)
  var proc =
    c.legion_runtime_get_executing_processor(__runtime(), __context())
  var procs = c.bishop_all_processors()
  regentlib.assert(procs.list[(i.x + i.y + 1) % procs.size].id == proc.id,
    "test failed in foo")
end

task toplevel()
  var proc =
    c.legion_runtime_get_executing_processor(__runtime(), __context())
  var procs = c.bishop_all_processors()

  var is = ispace(int2d, { x = 4, y = 4 })
  __demand(__parallel)
  for i in is do
    foo(i)
  end
  regentlib.assert(procs.list[1].id == proc.id, "test failed in toplevel")
end

bishoplib.register_bishop_mappers()
regentlib.start(toplevel)


Test case for index launch optimizer handling coherence modes

-- Copyright 2016 Stanford University
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
--     http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.

import "regent"

local c = regentlib.c

task f(s0 : region(int), s1 : region(int))
where
  reads writes simultaneous(s0),
  reads writes simultaneous(s1)
do
end

task main()
  var s = region(ispace(ptr, 5), int)
  var y0 = new(ptr(int, s))
  var y1 = new(ptr(int, s))
  var y2 = new(ptr(int, s))

  var rc = c.legion_coloring_create()
  c.legion_coloring_add_point(rc, 0, __raw(y0))
  c.legion_coloring_add_point(rc, 1, __raw(y1))
  c.legion_coloring_add_point(rc, 2, __raw(y2))
  var p1 = partition(disjoint, s, rc)
  var p2 = partition(aliased, s, rc)
  c.legion_coloring_destroy(rc)

  __demand(__parallel)
  for idx = 0, 1 do
    f(p1[0], p1[1])
  end

  __demand(__parallel)
  for idx = 0, 1 do
    f(p2[0], p2[1])
  end
end
regentlib.start(main)


Add test for partitioning with a domain point coloring.

-- Copyright 2016 Stanford University
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
--     http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.

import "regent"

local c = regentlib.c

terra to_domain(lo : c.coord_t, hi : c.coord_t)
  return c.legion_domain_from_rect_1d(
    c.legion_rect_1d_t {
      lo = c.legion_point_1d_t { x = arrayof(c.coord_t, lo) },
      hi = c.legion_point_1d_t { x = arrayof(c.coord_t, hi) },
    })
end

terra to_domain_point(x : c.coord_t)
  return c.legion_domain_point_from_point_1d(
    c.legion_point_1d_t { x = arrayof(c.coord_t, x) })
end

task f() : int
  var r = region(ispace(int1d, 5), int)
  var colors = ispace(int1d, 1)

  var rc = c.legion_domain_point_coloring_create()
  c.legion_domain_point_coloring_color_domain(rc, to_domain_point(0), to_domain(0, 3))
  var p = partition(disjoint, r, rc, colors)
  c.legion_domain_point_coloring_destroy(rc)
  var r0 = p[0]

  fill(r, 1)
  fill(r0, 10)

  var t = 0
  for i in r do
    t += r[i]
  end
  return t
end

task main()
  regentlib.assert(f() == 41, "test failed")
end
regentlib.start(main)


<%@ Control Language="C#" AutoEventWireup="false" EnableViewState="false" Inherits="R7.Epsilon.AdminPageInfo" %>
<%@ Import Namespace="DotNetNuke.Security" %>
<% if (PortalSecurity.IsInRole ("Administrators")) { %>

        <a class="skin-page-permalink" href="<%= PagePermalink %>" title="<%: Localizer.GetString ("PagePermalink.Tooltip") %>"><%= Localizer.GetString ("PagePermalink.Text") %>

<% } %>

Make admin page info panel dismissible

<%@ Control Language="C#" AutoEventWireup="false" EnableViewState="false" Inherits="R7.Epsilon.AdminPageInfo" %>
<%@ Import Namespace="DotNetNuke.Security" %>
<% if (PortalSecurity.IsInRole ("Administrators")) { %>

        <button type="button" class="close" data-dismiss="alert">×</button>
        <a class="skin-page-permalink" href="<%= PagePermalink %>" title="<%: Localizer.GetString ("PagePermalink.Tooltip") %>"><%= Localizer.GetString ("PagePermalink.Text") %>

<% } %>


<%@ Application Inherits="DotNetNuke.Web.Common.Internal.DotNetNukeHttpApplication" Language="C#" %>
<%@ Import Namespace="DotNetNuke.Entities.Portals" %>
<%@ Import Namespace="DotNetNuke.Entities.Users" %>
<%@ Import Namespace="R7.Epsilon.Components" %>
<script runat="server">
public override string GetVaryByCustomString (HttpContext context, string arg)
{
    var result = string.Empty;
    foreach (var part in arg.Split (';'))
    {
        if (part == "PortalId") {
            result += "portalid=" + PortalSettings.Current.PortalId;
        }
        else if (part == "UserRoles") {
            if (Request.IsAuthenticated) {
                var user = UserController.GetCurrentUserInfo ();
                if (user != null)
                    result += "userroles=" + Utils.FormatList (",", (Array)user.Roles);
            }
        }
        else {
            result += base.GetVaryByCustomString (context, arg);
        }
    }

    return result;
}
</script>

Use UserController.Instance, rename formal parameter

<%@ Application Inherits="DotNetNuke.Web.Common.Internal.DotNetNukeHttpApplication" Language="C#" %>
<%@ Import Namespace="DotNetNuke.Entities.Portals" %>
<%@ Import Namespace="DotNetNuke.Entities.Users" %>
<%@ Import Namespace="R7.Epsilon.Components" %>
<script runat="server">
public override string GetVaryByCustomString (HttpContext context, string custom)
{
    var result = string.Empty;
    foreach (var part in custom.Split (';'))
    {
        if (part == "PortalId") {
            result += "portalid=" + PortalSettings.Current.PortalId;
        }
        else if (part == "UserRoles") {
            if (Request.IsAuthenticated) {
                var user = UserController.Instance.GetCurrentUserInfo ();
                if (user != null) {
                    result += "userroles=" + Utils.FormatList (",", (Array) user.Roles);
                }
            }
        }
        else {
            result += base.GetVaryByCustomString (context, custom);
        }
    }

    return result;
}
</script>


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
  <head runat="server">
    <meta http-equiv="Refresh" content="60" />
    <title>TeamTracker</title>
	<link rel="icon" href="team.png">
  </head>
  <body>
  <b>Support Team Availability Matrix</b>
    <form id="Body" runat="server">
      <asp:table id="StatusTable" runat="server" CellPadding="5" />
    </form>
	v1.0
  </body>
</html>

Add logo option, header font type, size, color

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

    <meta http-equiv="Refresh" content="60" />
    <title>TeamTracker</title>
	<link rel="icon" href="team.png">

  Support Team Availability Matrix

    <form id="Body" runat="server">
      <asp:table id="StatusTable" runat="server" CellPadding="5" />
    </form>
	v1.0


<%@ Page Language="c#" CodeBehind="editLanguage.aspx.cs" AutoEventWireup="True" MasterPageFile="../masterpages/umbracoPage.Master"
    Inherits="umbraco.settings.editLanguage" %>

<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
<asp:Content ContentPlaceHolderID="body" runat="server">
    <cc1:UmbracoPanel ID="Panel1" runat="server" Width="608px" Height="336px" hasMenu="true"
        Style="text-align: center">
        <cc1:Pane ID="Pane7" runat="server">
            <cc1:PropertyPanel runat="server" ID="pp_language">
                <asp:DropDownList ID="Cultures" runat="server">
                </asp:DropDownList>
            </cc1:PropertyPanel>
        </cc1:Pane>
    </cc1:UmbracoPanel>
    <script type="text/javascript">
        jQuery(document).ready(function () {
            UmbClientMgr.appActions().bindSaveShortCut();
        });
    </script>
</asp:Content>

Fix for U4-4026 Inline styling affect header text

<%@ Page Language="c#" CodeBehind="editLanguage.aspx.cs" AutoEventWireup="True" MasterPageFile="../masterpages/umbracoPage.Master"
    Inherits="umbraco.settings.editLanguage" %>

<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
<asp:Content ContentPlaceHolderID="body" runat="server">
    <cc1:UmbracoPanel ID="Panel1" runat="server" Width="608px" Height="336px" hasMenu="true">
        <cc1:Pane ID="Pane7" runat="server">
            <cc1:PropertyPanel runat="server" ID="pp_language">
                <asp:DropDownList ID="Cultures" runat="server">
                </asp:DropDownList>
            </cc1:PropertyPanel>
        </cc1:Pane>
    </cc1:UmbracoPanel>
    <script type="text/javascript">
        jQuery(document).ready(function () {
            UmbClientMgr.appActions().bindSaveShortCut();
        });
    </script>
</asp:Content>


<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IQueryable<CRP.Core.Domain.Item>>" %>
<%@ Import Namespace="CRP.Core.Resources"%>
<%@ Import Namespace="CRP.Controllers"%>

        <%  // for loop to go through all the items passed
            foreach(var item in Model) { %>

                    <a href='<%= Url.Action("Details", "Item", new {id = item.Id}) %>'>

<%= Html.Encode(item.Name) %>

                        <img src='<%= Url.Action("GetImage", "Item", new {id = item.Id}) %>' />

Last day to register online: <%= Html.Encode(item.Expiration.HasValue ? item.Expiration.Value.ToString("D") : string.Empty) %>

                        <% Html.RenderPartial(StaticValues.Partial_TagView, item.Tags); %>

                            <%= Html.Encode(item.Summary) %>
                            <%--<%= item.Description.Length > 1000 ? Html.HtmlEncode(item.Description.Substring(0, 1000)) : Html.HtmlEncode(item.Description) %>--%>

        <% } %>

Change the paragraph tag to an anchor tag linked to the item. Also added specific blue text "Click here to register."

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IQueryable<CRP.Core.Domain.Item>>" %>
<%@ Import Namespace="CRP.Core.Resources"%>
<%@ Import Namespace="CRP.Controllers"%>

        <%  // for loop to go through all the items passed
            foreach(var item in Model) { %>

                    <a href='<%= Url.Action("Details", "Item", new {id = item.Id}) %>'>

<%= Html.Encode(item.Name) %>

                        <img src='<%= Url.Action("GetImage", "Item", new {id = item.Id}) %>' />

Last day to register online: <%= Html.Encode(item.Expiration.HasValue ? item.Expiration.Value.ToString("D") : string.Empty) %>

                        <% Html.RenderPartial(StaticValues.Partial_TagView, item.Tags); %>

                        <a href='<%= Url.Action("Details", "Item", new {id = item.Id}) %>'>
                            <%= Html.Encode(item.Summary) %>
                            <%--<%= item.Description.Length > 1000 ? Html.HtmlEncode(item.Description.Substring(0, 1000)) : Html.HtmlEncode(item.Description) %>--%>

                        <%Item item1 = item;%><%= Html.ActionLink<ItemController>(a => a.Details(item1.Id), "Click here to register.", new{style="color: rgb(0, 0, 255)"}) %>

        <% } %>


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

    <title>Test Form</title>
    <link rel="icon" href="favicon.ico"/>

    <form id="form1" runat="server">

        <asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
        <asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged="CheckBox1_CheckedChanged" />

        <input id="Submit1" type="submit" value="Submit" />

            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

            <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>

        <input id="Text1" type="text" /></form>

Revert "Added a very special div"


    <ui-select ng-model="ctrl.documentLibrary.selected" theme="bootstrap">
        <ui-select-match placeholder="Select or search for a document library...">

                {{$select.selected.Title}} ({{$select.selected.RootFolder.ServerRelativeUrl}})

        </ui-select-match>
        <ui-select-choices repeat="item in ctrl.documentLibraries | filter: $select.search">

                {{item.Title | highlight: $select.search}} ({{item.RootFolder.ServerRelativeUrl}})

                No Description

        </ui-select-choices>
    </ui-select>

Document Library Picker - Fix Search Highlighting

    <ui-select ng-model="ctrl.documentLibrary.selected" theme="bootstrap">
        <ui-select-match placeholder="Select or search for a document library...">

                {{$select.selected.Title}} ({{$select.selected.RootFolder.ServerRelativeUrl}})

        </ui-select-match>
        <ui-select-choices repeat="item in ctrl.documentLibraries | filter: $select.search">

                 ({{item.RootFolder.ServerRelativeUrl}})

                No Description

        </ui-select-choices>
    </ui-select>


<% Response.Redirect("https://raw.githubusercontent.com/cake-build/example/master/tools/packages.config") %>

Adjust so packages.config points to resources repo


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Settings.aspx.cs" Inherits="Settings" %>

<!DOCTYPE html>

    <title>Settings</title>

    Back
    <form id="SettingsForm" runat="server">

        <asp:SqlDataSource
          ID="dataSource"
          Runat="server"
          SelectCommand="SELECT * FROM Setting"
          UpdateCommand="UPDATE Setting SET [key]=@key, value=@value WHERE id=@id"
          DataSourceMode="DataSet">
        </asp:SqlDataSource>
        <asp:GridView
          ID="settingsView"
          Runat="server"
          DataSourceID="dataSource"
          AutoGenerateColumns="false"
          DataKeyNames="id"
          ShowHeader="true"
          ShowFooter="false">
          <AlternatingRowStyle BackColor="LightBlue" />
          <Columns>
            <asp:CommandField
              ShowEditButton="true"
              ShowDeleteButton="false" />
            <asp:BoundField
              HeaderText="Key"
              ReadOnly="true"
              DataField="key" />
            <asp:BoundField
              HeaderText="Value"
              ReadOnly="false"
              DataField="value" />
          </Columns>
        </asp:GridView>

    </form>

Fix for setting value update after key was made read-only.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Settings.aspx.cs" Inherits="Settings" %>

<!DOCTYPE html>

    <title>Settings</title>

    Back
    <form id="SettingsForm" runat="server">

        <asp:SqlDataSource
          ID="dataSource"
          Runat="server"
          SelectCommand="SELECT * FROM Setting"
          UpdateCommand="UPDATE Setting SET value=@value WHERE id=@id"
          DataSourceMode="DataSet">
        </asp:SqlDataSource>
        <asp:GridView
          ID="settingsView"
          Runat="server"
          DataSourceID="dataSource"
          AutoGenerateColumns="false"
          DataKeyNames="id"
          ShowHeader="true"
          ShowFooter="false">
          <AlternatingRowStyle BackColor="LightBlue" />
          <Columns>
            <asp:CommandField
              ShowEditButton="true"
              ShowDeleteButton="false" />
            <asp:BoundField
              HeaderText="Key"
              ReadOnly="true"
              DataField="key" />
            <asp:BoundField
              HeaderText="Value"
              ReadOnly="false"
              DataField="value" />
          </Columns>
        </asp:GridView>

    </form>


<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ViewAgent.ascx.cs" Inherits="R7.News.Agent.ViewAgent" %>
<%@ Import Namespace="System.Web" %>

<asp:ListView id="listAgent" DataKeyNames="EntryId" runat="server" OnItemDataBound="listAgent_ItemDataBound">
    <LayoutTemplate>

    </LayoutTemplate>
    <ItemTemplate>

            <asp:HyperLink id="linkEdit" runat="server">
                <asp:Image id="imageEdit" runat="server" IconKey="Edit" resourcekey="Edit" />
            </asp:HyperLink>
            EntryId: <%# Eval ("EntryId") %>

            Title: <%# Eval ("Title") %>

            CreatedOnDate: <%# Eval ("ContentItem.CreatedOnDate") %>

            LastModifiedOnDate: <%# Eval ("ContentItem.LastModifiedOnDate") %>

            CreatedByUserID: <%# Eval ("ContentItem.CreatedByUserID") %>

            LastModifiedByUserID: <%# Eval ("ContentItem.LastModifiedByUserID") %>

            Description: <%# HttpUtility.HtmlDecode ((string) Eval ("Description")) %>

            Visibility: <%# Eval ("Visibility") %>

    </ItemTemplate>
    <ItemSeparatorTemplate>

    </ItemSeparatorTemplate>
</asp:ListView>

Fix agent module shouldn't use news entry visibility

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ViewAgent.ascx.cs" Inherits="R7.News.Agent.ViewAgent" %>
<%@ Import Namespace="System.Web" %>

<asp:ListView id="listAgent" DataKeyNames="EntryId" runat="server" OnItemDataBound="listAgent_ItemDataBound">
    <LayoutTemplate>

    </LayoutTemplate>
    <ItemTemplate>

            <asp:HyperLink id="linkEdit" runat="server">
                <asp:Image id="imageEdit" runat="server" IconKey="Edit" resourcekey="Edit" />
            </asp:HyperLink>
            EntryId: <%# Eval ("EntryId") %>

            Title: <%# Eval ("Title") %>

            CreatedOnDate: <%# Eval ("ContentItem.CreatedOnDate") %>

            LastModifiedOnDate: <%# Eval ("ContentItem.LastModifiedOnDate") %>

            CreatedByUserID: <%# Eval ("ContentItem.CreatedByUserID") %>

            LastModifiedByUserID: <%# Eval ("ContentItem.LastModifiedByUserID") %>

            Description: <%# HttpUtility.HtmlDecode ((string) Eval ("Description")) %>

    </ItemTemplate>
    <ItemSeparatorTemplate>

    </ItemSeparatorTemplate>
</asp:ListView>


<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<LogOnViewModel>" %>
<%@ Import Namespace="Orchard.Users.ViewModels"%>

<%=Html.TitleForPage(Model.Title)%>

<%=_Encoded("Please enter your username and password.")%> <%= Html.ActionLink("Register", "Register")%><%=_Encoded(" if you don't have an account.")%>

<%= Html.ValidationSummary(T("Login was unsuccessful. Please correct the errors and try again.").ToString())%>
<%
using (Html.BeginFormAntiForgeryPost(Url.Action("LogOn", new {ReturnUrl = Request.QueryString["ReturnUrl"]}))) { %>
<fieldset class="login-form">
    <legend><%=_Encoded("Account Information")%></legend>

        <%=_Encoded("Username:")%>
        <%= Html.TextBox("userNameOfEmail", "", new { autofocus = "autofocus" })%>
        <%= Html.ValidationMessage("userNameOrEmail")%>

        <%=_Encoded("Password:")%>
        <%= Html.Password("password")%>
        <%= Html.ValidationMessage("password")%>

        <%= Html.CheckBox("rememberMe")%><%=_Encoded("Remember me?")%>

    <input type="submit" value="<%=_Encoded("Log On") %>" />
</fieldset><%
} %>

Fix typo from previous merge

<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<LogOnViewModel>" %>
<%@ Import Namespace="Orchard.Users.ViewModels"%>

<%=Html.TitleForPage(Model.Title)%>

<%=_Encoded("Please enter your username and password.")%> <%= Html.ActionLink("Register", "Register")%><%=_Encoded(" if you don't have an account.")%>

<%= Html.ValidationSummary(T("Login was unsuccessful. Please correct the errors and try again.").ToString())%>
<%
using (Html.BeginFormAntiForgeryPost(Url.Action("LogOn", new {ReturnUrl = Request.QueryString["ReturnUrl"]}))) { %>
<fieldset class="login-form">
    <legend><%=_Encoded("Account Information")%></legend>

        <%=_Encoded("Username:")%>
        <%= Html.TextBox("userNameOrEmail", "", new { autofocus = "autofocus" })%>
        <%= Html.ValidationMessage("userNameOrEmail")%>

        <%=_Encoded("Password:")%>
        <%= Html.Password("password")%>
        <%= Html.ValidationMessage("password")%>

        <%= Html.CheckBox("rememberMe")%><%=_Encoded("Remember me?")%>

    <input type="submit" value="<%=_Encoded("Log On") %>" />
</fieldset><%
} %>


Fix BottomPane is missing in 2cols layout


<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<Orchard.Core.Localization.ViewModels.ContentLocalizationsViewModel>" %>
<%
    Html.RegisterStyle("base.css"); %>

<%
    if (Model.Localizations.Count() > 0) { %>
    <%--//todo: need this info in the view model--%>

<%:Html.UnorderedList(Model.Localizations, (c, i) => Html.ItemDisplayLink(c.Culture.Culture, c), "localizations") %>
<%
    } %>

<%:Html.ActionLink(T("+ New translation").Text, "translate", "admin", new { area = "Localization", id = Model.MasterId }, null)%>

Remove "+New Translation" link on the front-end (keep in "Manage Content" though).


<%@ Page Language="C#" AutoEventWireup="true" ValidateRequest="false" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <meta name="Description" content="A bulletin board system written in ASP.NET" />
    <meta name="Keywords" content="Yet Another Forum.net, Forum, ASP.NET, BB, Bulletin Board, opensource" />
    <title>This title is overwritten</title>

    <form id="form1" runat="server" enctype="multipart/form-data">
        <YAF:Forum runat="server" ID="forum"></YAF:Forum>
    </form>

Fix for a rare problem that could occur if there was an exception very early in the ASP.NET page life-cycle (before the "forum" control was instantiated)


<%@ Control Language="C#" AutoEventWireup="false" CodeBehind="TermLinks.ascx.cs" Inherits="R7.News.Controls.TermLinks" %>
<asp:ListView id="listTermLinks" runat="server" DataKeyNames="TermId">
    <LayoutTemplate>

    </LayoutTemplate>
    <ItemTemplate>
        <a href="<%# Eval ("Url") %>"><%# Eval ("Name") %>
    </ItemTemplate>
</asp:ListView>

Add missing li to term list, adjust visual style


<%@ Page Language="C#" AutoEventWireup="true" Inherits="System.Web.UI.Page" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <title>The website is restarting</title>
    <META HTTP-EQUIV=REFRESH CONTENT="10; URL=<%=Request["url"] %>">

The website is restarting

Please wait for 10s while we prepare to serve the page you have requested...

        You can modify the design of this page by editing /config/splashes/booting.aspx

Update to U4-1485 for 4.11.4

<%@ Page Language="C#" AutoEventWireup="true" Inherits="System.Web.UI.Page" %>

<%
// NH: Adds this inline check to avoid a simple codebehind file in the legacy project!
if (!umbraco.cms.helpers.url.ValidateProxyUrl(Request["url"], Request.Url.AbsoluteUri))
{
    throw new ArgumentException("Can't redirect to the requested url - it's not local or an approved proxy url", "url");
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <title>The website is restarting</title>
    <meta http-equiv="REFRESH" content="10; URL=<%=Request["url"] %>">

The website is restarting

Please wait for 10s while we prepare to serve the page you have requested...

        You can modify the design of this page by editing /config/splashes/booting.aspx


<%@ PAGE LANGUAGE = C# %>
<%--
-- Test calling map path on a relative path. This should print
-- the full path of map-path.aspx
--%>
<html>
<script runat=server>
   void Page_Load()
   {
	Response.Write (Server.MapPath ("map-path.aspx"));
   }
</script>
<body>
</body>
</html>


<%@ Page Language="c#" CodeFile="error.aspx.cs" AutoEventWireup="True" Inherits="YAF.error" %>

<title>Forum Error</title>
<link type="text/css" rel="stylesheet" href="resources/forum.css" />
<link type="text/css" rel="stylesheet" href="themes/yafpro/theme.css" />

      Forum Error

      <asp:Label ID="ErrorMsg" Enabled="true" runat="server" />

      Try Again

Fix for lack of formatting.


Add test page for the CompareValidator control.

<%@ Page Language="C#" %>

<title>CompareValidator</title>

<form runat="server">
<asp:Label text="Enter twice the same string:" runat="server"/>

<asp:TextBox id="Text1" runat="server" /> ==
<asp:TextBox id="Text2" runat="server" />
<asp:CompareValidator runat="server"
	EnableClientScript="true"
	ControlToValidate="Text1" ControlToCompare="Text2" Operation="Equal"
	ErrorMessage="Strings do not match!"/>

<asp:Button text="Check" onclick="Check_Click" runat="server"/>

<asp:Label id="message" runat="server"/>
</form>


<%@ Control Language="C#" AutoEventWireup="true" EnableViewState="false" CodeFile="ForumSubForumList.ascx.cs"
    Inherits="YAF.Controls.ForumSubForumList" %>
<asp:Repeater ID="SubforumList" runat="server" OnItemCreated="SubforumList_ItemCreated">
    <HeaderTemplate>

<YAF:LocalizedLabel ID="SubForums" LocalizedTag="SUBFORUMS" runat="server" />:

 </HeaderTemplate>
    <ItemTemplate>
        <YAF:ThemeImage ID="ThemeSubforumIcon" runat="server" /> <%# GetForumLink((System.Data.DataRow)Container.DataItem) %></ItemTemplate>
    <SeparatorTemplate>, </SeparatorTemplate>
    <FooterTemplate>

    </FooterTemplate>
</asp:Repeater>

Fix for rendering bug... Div was no longer containing the subForums messing up theming.


// ******************************************************************************************
// * This project is licensed under the GNU Affero GPL v3. Copyright © 2017 A3Wasteland.com *
// ******************************************************************************************
//	@file Name: fn_vehicleKilledServer.sqf
//	@file Author: AgentRev

params ["_veh"];

_veh call A3W_fnc_setItemCleanup;

if (!isNil "fn_manualVehicleDelete") then
{
	[objNull, _veh getVariable "A3W_vehicleID"] call fn_manualVehicleDelete;
	_veh setVariable ["A3W_vehicleSaved", false, false];
};

{
	if (isAgent teamMember _x) then
	{
		deleteVehicle _x;
	};
} forEach crew _vehicle;

Stop vehicle siren on destruction

// ******************************************************************************************
// * This project is licensed under the GNU Affero GPL v3. Copyright © 2017 A3Wasteland.com *
// ******************************************************************************************
//	@file Name: fn_vehicleKilledServer.sqf
//	@file Author: AgentRev

params ["_veh"];

_veh call A3W_fnc_setItemCleanup;

if (!isNil "fn_manualVehicleDelete") then
{
	[objNull, _veh getVariable "A3W_vehicleID"] call fn_manualVehicleDelete;
	_veh setVariable ["A3W_vehicleSaved", false, false];
};

{
	if (isAgent teamMember _x) then
	{
		deleteVehicle _x;
	};
} forEach crew _vehicle;

// Stop vehicle siren
if (isClass (configFile >> "CfgVehicles" >> (typeOf _veh) >> "UserActions" >> "siren_stop")) then
{
	[_veh,'CustomSoundController1',0,0.4] remoteExec ['BIS_fnc_setCustomSoundController'];
};


/*
	File: fn_openTAWVD.sqf
	Author: Bryan "Tonic" Boardwine

	Description:
	Called via addAction and opens the TAW View Distance Menu
*/
if(!createDialog "TAW_VD") exitWith {hint "Something went wrong, the menu won't open?"};
disableSerialization;

ctrlSetText[2902, format["%1", tawvd_foot]];
ctrlSetText[2912, format["%1", tawvd_car]];
ctrlSetText[2922, format["%1", tawvd_air]];
ctrlSetText[2942, format["%1", tawvd_object]];

//Setup the sliders
{
	slidersetRange [_x select 0,100,3200];
	((findDisplay 2900) displayCtrl (_x select 0)) sliderSetSpeed [100,100,100];
	sliderSetPosition[_x select 0, _x select 1];
} foreach [[2901,tawvd_foot],[2911,tawvd_car],[2921,tawvd_air],[2941,tawvd_object]];

((finddisplay 2900) displayCtrl 2931) cbSetChecked tawvd_syncObject;

if(tawvd_syncObject) then {
	ctrlEnable [2941,false];
} else {
	ctrlEnable [2941,true];
};

Change max view distance to 4000m for dogfights.

/*
	File: fn_openTAWVD.sqf
	Author: Bryan "Tonic" Boardwine

	Description:
	Called via addAction and opens the TAW View Distance Menu
*/
if(!createDialog "TAW_VD") exitWith {hint "Something went wrong, the menu won't open?"};
disableSerialization;

ctrlSetText[2902, format["%1", tawvd_foot]];
ctrlSetText[2912, format["%1", tawvd_car]];
ctrlSetText[2922, format["%1", tawvd_air]];
ctrlSetText[2942, format["%1", tawvd_object]];

//Setup the sliders
{
	slidersetRange [_x select 0,100,4000];
	((findDisplay 2900) displayCtrl (_x select 0)) sliderSetSpeed [100,100,100];
	sliderSetPosition[_x select 0, _x select 1];
} foreach [[2901,tawvd_foot],[2911,tawvd_car],[2921,tawvd_air],[2941,tawvd_object]];

((finddisplay 2900) displayCtrl 2931) cbSetChecked tawvd_syncObject;

if(tawvd_syncObject) then {
	ctrlEnable [2941,false];
} else {
	ctrlEnable [2941,true];
};


params ["_role", "_vehicle"];

private _doEject = false;
private _blacklistedRoles = ["driver", "gunner", "commander"];
private _permissableVehicles = [["Tank", 1, "STR_PERMISSION_NO_ARMOR"], ["Air", 2, "STR_PERMISSION_NO_AIR"]];

_playerVehicleDetails = _permissableVehicles select {_vehicle isKindOf (_x select 0)} select 0;
if(count _playerVehicleDetails == 0) then {
	if(!([player, 0] call F_fetchPermission)) then {
		_doEject = true;
		hint localize "STR_PERMISSION_NO_LIGHT";
	};
} else {
	_vehiclePermissionIndex = _playerVehicleDetails select 1;
	_vehiclePermissionAccessMessage = _playerVehicleDetails select 2;

	if(!([player, _vehiclePermissionIndex] call F_fetchPermission) && _role in _blacklistedRoles) then {
		_doEject = true;
		hint localize _vehiclePermissionAccessMessage;
	};
};

if (_doEject) then {
	moveOut player;
};

Fix spelling mistake permissable -> permissible

params ["_role", "_vehicle"];

private _doEject = false;
private _blacklistedRoles = ["driver", "gunner", "commander"];
private _permissibleVehicles = [["Tank", 1, "STR_PERMISSION_NO_ARMOR"], ["Air", 2, "STR_PERMISSION_NO_AIR"]];

_playerVehicleDetails = _permissibleVehicles select {_vehicle isKindOf (_x select 0)} select 0;
if(count _playerVehicleDetails == 0) then {
	if(!([player, 0] call F_fetchPermission)) then {
		_doEject = true;
		hint localize "STR_PERMISSION_NO_LIGHT";
	};
} else {
	_vehiclePermissionIndex = _playerVehicleDetails select 1;
	_vehiclePermissionAccessMessage = _playerVehicleDetails select 2;

	if(!([player, _vehiclePermissionIndex] call F_fetchPermission) && _role in _blacklistedRoles) then {
		_doEject = true;
		hint localize _vehiclePermissionAccessMessage;
	};
};

if (_doEject) then {
	moveOut player;
};


gpsSetting = paramsArray select 0;
startingTime = paramsArray select 1;
detectionRadius =  paramsArray select 2;
detectionRadiusVehicle =  paramsArray select 3;
requiredObjectives = paramsArray select 4;
availableObjectives = paramsArray select 5;
objectiveRadius = paramsArray select 6;
nameTags = paramsArray select 7;
requiredIntel = paramsArray select 8;
//startingWeather = paramsArray select 9;
debugMode = paramsArray select 10;
disallowTeamswitch = paramsArray select 11;
acceleratedTime = paramsArray select 12;
respawnTime = paramsArray select 13;
initialDroneDelay = paramsArray select 14;
dynamicObjectives = 0;
maxUavs = 1;

if(!isMultiplayer) then { debugMode = 1; };

Add singleplayer variables to avoid errors

if(isMultiplayer) then {
	gpsSetting = paramsArray select 0;
	startingTime = paramsArray select 1;
	detectionRadius =  paramsArray select 2;
	detectionRadiusVehicle =  paramsArray select 3;
	requiredObjectives = paramsArray select 4;
	availableObjectives = paramsArray select 5;
	objectiveRadius = paramsArray select 6;
	nameTags = paramsArray select 7;
	requiredIntel = paramsArray select 8;
	//startingWeather = paramsArray select 9;
	debugMode = paramsArray select 10;

	disallowTeamswitch = paramsArray select 11;
	acceleratedTime = paramsArray select 12;
	respawnTime = paramsArray select 13;
	initialDroneDelay = paramsArray select 14;
	dynamicObjectives = 0;
	maxUavs = 1;
} else {
	gpsSetting = 3;
	startingTime = 12;
	detectionRadius =  350;
	detectionRadiusVehicle = 110;
	requiredObjectives = 3;
	availableObjectives = 6;
	objectiveRadius = 1250;
	nameTags = 2;
	requiredIntel = 3;
	//startingWeather = paramsArray select 9;
	debugMode = 1;

	disallowTeamswitch = 1;
	acceleratedTime = 1;
	respawnTime = 105;
	initialDroneDelay = 240;
	dynamicObjectives = 0;
	maxUavs = 1;
}


uav_control_permission = "owner"; // Scope for who is able to access the UAV controls ("owner", "group", "side")

Set UAV control to group.

uav_control_permission = "group"; // Scope for who is able to access the UAV controls ("owner", "group", "side")


enableSaving [ false, false ];

[] call compileFinal preprocessFileLineNumbers "scripts\shared\liberation_functions.sqf";
[] call compileFinal preprocessFileLineNumbers "scripts\shared\init_sectors.sqf";
[] call compileFinal preprocessFileLineNumbers "scripts\shared\fetch_params.sqf";
[] call compileFinal preprocessFileLineNumbers "gameplay_constants.sqf";
[] call compileFinal preprocessFileLineNumbers "classnames.sqf";
[] call compileFinal preprocessFileLineNumbers "custom.sqf";

// Start limiting of Arsenal Assets
ARSENAL_ISFULL = true;
if ((["ArsenalLimitation",1] call bis_fnc_getParamValue) == 1) then {
  ARSENAL_ISFULL = false;
  [] call compileFinal preprocessFileLineNumbers "arsenal.sqf";
};

[] call compileFinal preprocessFileLineNumbers "scripts\shared\init_shared.sqf";

if (isServer) then {
  [] call compileFinal preprocessFileLineNumbers "scripts\server\init_server.sqf";
};

if (!isDedicated && hasInterface) then {
  waitUntil { alive player };
  [] call compileFinal preprocessFileLineNumbers "scripts\client\init_client.sqf";
};

disableRemoteSensors true;

Set build_confirmed to 0 default

build_confirmed = 0;
enableSaving [ false, false ];

[] call compileFinal preprocessFileLineNumbers "scripts\shared\liberation_functions.sqf";
[] call compileFinal preprocessFileLineNumbers "scripts\shared\init_sectors.sqf";
[] call compileFinal preprocessFileLineNumbers "scripts\shared\fetch_params.sqf";
[] call compileFinal preprocessFileLineNumbers "gameplay_constants.sqf";
[] call compileFinal preprocessFileLineNumbers "classnames.sqf";
[] call compileFinal preprocessFileLineNumbers "custom.sqf";

// Start limiting of Arsenal Assets
ARSENAL_ISFULL = true;
if ((["ArsenalLimitation",1] call bis_fnc_getParamValue) == 1) then {
  ARSENAL_ISFULL = false;
  [] call compileFinal preprocessFileLineNumbers "arsenal.sqf";
};

[] call compileFinal preprocessFileLineNumbers "scripts\shared\init_shared.sqf";

if (isServer) then {
  [] call compileFinal preprocessFileLineNumbers "scripts\server\init_server.sqf";
};

if (!isDedicated && hasInterface) then {
  waitUntil { alive player };
  [] call compileFinal preprocessFileLineNumbers "scripts\client\init_client.sqf";
};

disableRemoteSensors true;


/*
	Author: Will Hart

	Description:
	  Shows all vehicles synchronised to a given respawn module

	Parameter(s):
	  _this: OBJECT, a module to use for respawning

	Example:
	  my_respawn_module call FW_fnc_startSpawnVehicle;

	Returns:
	Nothing
*/

#include "defines.sqf"

if (!isServer) exitWith {};

{
    _x hideObjectGlobal false;
    _x addEventHandler ["Killed", {_nul = [_this select 0] execVM "cookoff.sqf";}];
} forEach (synchronizedObjects _this);

Remove cookoff script init code


private [ "_dialog" ];

if ( isNil "cinematic_camera_started" ) then { cinematic_camera_started = false };
sleep 0.5;
waitUntil { time > 0 };

[] spawn cinematic_camera;

if ( GRLIB_introduction ) then {

	sleep 1;
	cutRsc ["intro1","PLAIN",1,true];
	sleep 5.5;
	cutRsc ["intro2","PLAIN",1,true];
	sleep 10;

};

showcaminfo = true;
dostartgame = 0;
_dialog = createDialog "liberation_menu";
waitUntil { dialog };
waitUntil { dostartgame == 1 || !dialog };

closeDialog 0;
introDone = true;

Fix redeploy menu not appearing

private [ "_dialog" ];

if ( isNil "cinematic_camera_started" ) then { cinematic_camera_started = false };
sleep 0.5;
waitUntil { time > 0 };

[] spawn cinematic_camera;

if ( GRLIB_introduction ) then {

	sleep 1;
	cutRsc ["intro1","PLAIN",1,true];
	sleep 5.5;
	cutRsc ["intro2","PLAIN",1,true];
	sleep 10;

};

showcaminfo = true;
dostartgame = 0;
_dialog = createDialog "liberation_menu";

waitUntil { dostartgame == 1 || !dialog };

closeDialog 0;
cinematic_camera_started = false;
introDone = true;


// ******************************************************************************************
// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com *
// ******************************************************************************************
//	@file Name: playerSetupStart.sqf
//	@file Author: [GoT] JoSchaap, AgentRev

private "_player";
_player = _this;

_player setSkill 0;
//{_player disableAI _x} foreach ["move","anim","target","autotarget"];
_player setVariable ["BIS_noCoreConversations", true];
_player setVariable ["A3W_corpseEjected", nil, true];
_player allowDamage false;
[_player, true] call fn_hideObjectGlobal;
//_player enableSimulation false;

if (["A3W_unlimitedStamina"] call isConfigOn) then
{
	_player enableFatigue false;
	_player enableStamina false;
};

enableSentences false;

removeAllWeapons _player;
removeUniform _player;
removeVest _player;
removeBackpack _player;
removeGoggles _player;
removeHeadgear _player;

Set weapon sway down and set allowSprint true

// ******************************************************************************************
// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com *
// ******************************************************************************************
//	@file Name: playerSetupStart.sqf
//	@file Author: [GoT] JoSchaap, AgentRev

private "_player";
_player = _this;

_player setSkill 0;
//{_player disableAI _x} foreach ["move","anim","target","autotarget"];
_player setVariable ["BIS_noCoreConversations", true];
_player setVariable ["A3W_corpseEjected", nil, true];
_player allowDamage false;
[_player, true] call fn_hideObjectGlobal;
//_player enableSimulation false;

if (["A3W_unlimitedStamina"] call isConfigOn) then
{
	_player enableFatigue false;
	_player enableStamina false;
	_player allowSprint true;
	_player setCustomAimCoef 0.05;
};

enableSentences false;

removeAllWeapons _player;
removeUniform _player;
removeVest _player;
removeBackpack _player;
removeGoggles _player;
removeHeadgear _player;


// Author: comfy
// Description:
// Small script to copy the list of maps from all the addons that are currently mounted.

///////// COPY FROM BELOW HERE

private _worldlist = [];
private _config_index = 0;

for [{_config_index = 0}, {_config_index < (count (configfile >> "CfgWorldList"))}, {_config_index = _config_index+1}] do {
  private _config = (configfile >> "CfgWorldList") select _config_index;
  _worldlist pushBack (configName _config);
};

hint str _worldlist;
copyToClipboard str _worldlist;

Add more explanation to the copy maplist tool

// Author: comfy
// Description:
// Small script to copy the list of maps from all the addons that are currently mounted.
// Jump into the editor and execute this block of code in the debug console and it will copy the list of map endings into your clipboard.

///////// COPY FROM BELOW HERE

private _worldlist = [];
private _config_index = 0;

for [{_config_index = 0}, {_config_index < (count (configfile >> "CfgWorldList"))}, {_config_index = _config_index+1}] do {
  private _config = (configfile >> "CfgWorldList") select _config_index;
  _worldlist pushBack (configName _config);
};

hint str _worldlist;
copyToClipboard str _worldlist;


if (hasInterface) exitWith {};
diag_log "hLoad.sqf loading ...";

externalConfigFolder = "\A3Wasteland_settings";
call compile preprocessFileLineNumbers (externalConfigFolder + "\main_config.sqf");
call compile preprocessFileLineNumbers "persistence\fn_sock_custom.sqf";
call compile preprocessFileLineNumbers "persistence\lib\hash.sqf";
call compile preprocessFileLineNumbers "persistence\lib\shFunctions.sqf";
call compile preprocessFileLineNumbers "persistence\players\sFunctions.sqf";
call compile preprocessFileLineNumbers "persistence\players\pFunctions.sqf";
call compile preprocessFileLineNumbers "persistence\world\vFunctions.sqf";
call compile preprocessFileLineNumbers "persistence\world\oFunctions.sqf";
HeadlessClient setVariable ["hc_ready", true, true];
diag_log "hLoad.sqf loading complete";

Load default config on HC as well

if (hasInterface) exitWith {};
diag_log "hLoad.sqf loading ...";

externalConfigFolder = "\A3Wasteland_settings";
call compile preprocessFileLineNumbers "server\default_config.sqf";
call compile preprocessFileLineNumbers (externalConfigFolder + "\main_config.sqf");
call compile preprocessFileLineNumbers "persistence\fn_sock_custom.sqf";
call compile preprocessFileLineNumbers "persistence\lib\hash.sqf";
call compile preprocessFileLineNumbers "persistence\lib\shFunctions.sqf";
call compile preprocessFileLineNumbers "persistence\players\sFunctions.sqf";
call compile preprocessFileLineNumbers "persistence\players\pFunctions.sqf";
call compile preprocessFileLineNumbers "persistence\world\vFunctions.sqf";
call compile preprocessFileLineNumbers "persistence\world\oFunctions.sqf";
HeadlessClient setVariable ["hc_ready", true, true];
diag_log "hLoad.sqf loading complete";


uav_control_permission = "group"; // Scope for who is able to access the UAV controls ("owner", "group", "side")

Refactor the UAV control addon from @IvanMMM

uav_control_permission = "owner"; // Scope for who is able to access the UAV controls ("owner", "group", "side")


call compile preProcessFileLineNumbers "initVariables.sqf";

objectivesFinished = 0;
extractionAvailable = false;
extractionFinished = false;
currentObjectives = [ ];
opforGuids = [ ];
availableUavs = 0;

publicVariable "objectivesFinished";
publicVariable "extractionAvailable";
publicVariable "extractionFinished";
publicVariable "currentObjectives";
publicVariable "availableUavs";

enableEngineArtillery false;

[availableObjectives] call compile preProcessFileLineNumbers "selectObjectives.sqf";

addMissionEventHandler ["HandleDisconnect", {
    private ["_unit"];
    _unit = _this select 0;

    if(side _unit == east) then
    {
        _unit setDamage 1;
        [[_unit], "Mh_fnc_resolveHuntedCorpse", true, true] call Bis_fnc_MP;
        true;
    }
    else
    {
        false;
    };
}];

private ["_resolveGuids"];
_resolveGuids = {
    {
        private ["_guid"];
        _guid = getPlayerUID _x;
        if(!(_guid in opforGuids)) then
        {
            opforGuids pushBack (getPlayerUID _x);
        };
    } forEach ([east] call Mh_fnc_getSideUnits);
};

call _resolveGuids;

sleep 1;

call _resolveGuids;

execVM "tracker.sqf";
execVM "checkEndConditions.sqf";

Fix for player bodies appearing if they connect and get kicked as opfor

call compile preProcessFileLineNumbers "initVariables.sqf";

objectivesFinished = 0;
extractionAvailable = false;
extractionFinished = false;
currentObjectives = [ ];
opforGuids = [ ];
availableUavs = 0;

publicVariable "objectivesFinished";
publicVariable "extractionAvailable";
publicVariable "extractionFinished";
publicVariable "currentObjectives";
publicVariable "availableUavs";

enableEngineArtillery false;

[availableObjectives] call compile preProcessFileLineNumbers "selectObjectives.sqf";

addMissionEventHandler ["HandleDisconnect", {
    private ["_unit"];
    _unit = _this select 0;

    private ["_guid"];
    _guid = getPlayerUID _x;
    if(side _unit == east && (_guid in opforGuids)) then
    {
        _unit setDamage 1;
        [[_unit], "Mh_fnc_resolveHuntedCorpse", true, true] call Bis_fnc_MP;
        true;
    }
    else
    {
        false;
    };
}];

private ["_resolveGuids"];
_resolveGuids = {
    {
        private ["_guid"];
        _guid = getPlayerUID _x;
        if(!(_guid in opforGuids)) then
        {
            opforGuids pushBack (getPlayerUID _x);
        };
    } forEach ([east] call Mh_fnc_getSideUnits);
};

call _resolveGuids;

sleep 1;

call _resolveGuids;

execVM "tracker.sqf";
execVM "checkEndConditions.sqf";


private ["_run"];
_run = true;

initialOpfor = { isPlayer _x && side group _x == east } count allUnits;
initialBlufor = { isPlayer _x && side group _x == west } count allUnits;

publicVariable "initialOpfor";

while { _run } do
{
    private["_aliveOpfor", "_deadOpfor"];
    _aliveOpfor = { isPlayer _x && alive _x && side group _x == east } count allUnits;
    _playingBluFor = { isPlayer _x && side group _x == west } count (allUnits + allDead);

    if(initialOpfor > 0 && initialBlufor > 0) then
    {
        if(_aliveOpfor == 0) then
        {
            ["OpforLoss","BIS_fnc_endMission",east, false] call BIS_fnc_MP;
            ["NatoWin","BIS_fnc_endMission",west] call BIS_fnc_MP;
            _run = false;
        };

        if(_playingBluFor == 0) then
        {
            ["OpforWin","BIS_fnc_endMission",east] call BIS_fnc_MP;
            ["NatoLoss","BIS_fnc_endMission",west, false] call BIS_fnc_MP;
            _run = false;
        };
    };

    sleep 5;
};

endMission "END1";

Stop mission if everyone's dead/quit

private ["_run"];
_run = true;

initialOpfor = { isPlayer _x && side group _x == east } count allUnits;
initialBlufor = { isPlayer _x && side group _x == west } count allUnits;

publicVariable "initialOpfor";

while { _run } do
{
    private["_aliveOpfor", "_deadOpfor"];
    _aliveOpfor = { isPlayer _x && alive _x && side group _x == east } count allUnits;
    _playingBluFor = { isPlayer _x && side group _x == west } count (allUnits + allDead);

    if(initialOpfor > 0 && initialBlufor > 0) then
    {
        if(_aliveOpfor == 0) then
        {
            ["OpforLoss","BIS_fnc_endMission",east, false] call BIS_fnc_MP;
            ["NatoWin","BIS_fnc_endMission",west] call BIS_fnc_MP;
            _run = false;
        };

        if(_playingBluFor == 0) then
        {
            ["OpforWin","BIS_fnc_endMission",east] call BIS_fnc_MP;
            ["NatoLoss","BIS_fnc_endMission",west, false] call BIS_fnc_MP;
            _run = false;
        };
    };

    if(_aliveOpfor == 0 && _playingBluFor == 0) then
    {
        _run = false;
    };

    sleep 5;
};

endMission "END1";


#include "script_component.hpp"
params ["_marker", "_local"];
if (!_local || {
    !isMultiplayer || {
    ("ACE_BFT_" in _marker) || {
    (getPlayerUID player) in _marker}}}) exitWith {};

private _info = ["Just deleted"];
switch (markerShape _marker) do {
    case "POLYLINE": {
        _info pushBack "a line"
    };
    case "ICON": {
        _info pushBack "a marker";
        private _text = markerText _marker;
        if (_text != "") then {
            _info pushBack ('with text "' + _text + '"');
        };
    };
    case "RECTANGLE";
    case "ELLIPSE": {
        _info pushBack "an area marker";
    };
    default {
        _info pushBack "a marker";
    };
};
_info pushBack ('that was of color "' + (markerColor _marker) + '"');

[QEGVAR(common,chatMessage), [profileName, _info joinString " ", "server", nil, false]] call CBA_fnc_globalEvent;

Allow missions to disable marker deletion reporting

#include "script_component.hpp"
params ["_marker", "_local"];

if (missionNamespace getVariable [QGVAR(disabled),false]) exitWith {};

if (!_local || {
    !isMultiplayer || {
    ("ACE_BFT_" in _marker) || {
    (getPlayerUID player) in _marker}}}) exitWith {};

private _info = ["Just deleted"];
switch (markerShape _marker) do {
    case "POLYLINE": {
        _info pushBack "a line"
    };
    case "ICON": {
        _info pushBack "a marker";
        private _text = markerText _marker;
        if (_text != "") then {
            _info pushBack ('with text "' + _text + '"');
        };
    };
    case "RECTANGLE";
    case "ELLIPSE": {
        _info pushBack "an area marker";
    };
    default {
        _info pushBack "a marker";
    };
};
_info pushBack ('that was of color "' + (markerColor _marker) + '"');

[QEGVAR(common,chatMessage), [profileName, _info joinString " ", "server", nil, false]] call CBA_fnc_globalEvent;


/*
	Wolfe Edits get init'd here!
*/

//[] execVM "init_TFAR.sqf"; //TFAR Init

[] execVM "init_ACE_Spray.sqf"; //Ace3 Custom Sprays Init

Switch to [] spawn from execVM

/*
	Wolfe Edits get init'd here!
*/

//[] execVM "init_TFAR.sqf"; //TFAR Init

[] spawn "init_ACE_Spray.sqf"; //Ace3 Custom Sprays Init


private ["_lastFatigue"];
_lastFatigue = 0;
while{true} do
{
    private ["_multiplier"];
    _multiplier = 0.35;
    if(side player != west) then
    {
        _multiplier = 0.75;
    };

    private ["_diff", "_cur"];
    _cur = getFatigue player;
    _diff = _cur - _lastFatigue;

    if(_diff > 0) then
    {
        player setFatigue ( _lastFatigue + _diff * _multiplier );
    };

    _lastFatigue = _cur;
    sleep 1;
};

Fix a bug with stamina relaxation setting last_fatigue to a value before relaxation

private _lastFatigue = 0;
while{true} do
{

    private _multiplier = 0.35;
    if(side player != west) then
    {
        _multiplier = 0.75;
    };

    private _cur = getFatigue player;
    private _diff = _cur - _lastFatigue;
    private _newFatigue = _lastFatigue + _diff * _multiplier;

    if(_diff > 0) then
    {
        player setFatigue _newFatigue;
    };

    _lastFatigue = _newFatigue;
    sleep 0.5;
};


waitUntil { !isNil "GRLIB_all_fobs" };
waitUntil { !isNil "save_is_loaded" };

firstloop = true;
HELO_TRANSPORT = objNull;
_savedhuron = objNull;

while { true } do {

	{
		if ( typeof _x == huron_typename ) then {
			_savedhuron = _x;
		};
	} foreach vehicles;

	if ( firstloop && !isNull _savedhuron ) then {
		HELO_TRANSPORT = _savedhuron;
	} else {
		HELO_TRANSPORT = huron_typename createVehicle ( getpos huronspawn );
		HELO_TRANSPORT setpos ( getpos huronspawn );
		HELO_TRANSPORT setDir 0;
	};

	firstloop = false;

	publicVariable "HELO_TRANSPORT";
	clearWeaponCargoGlobal HELO_TRANSPORT;
	clearMagazineCargoGlobal HELO_TRANSPORT;
	clearItemCargoGlobal HELO_TRANSPORT;
	clearBackpackCargoGlobal HELO_TRANSPORT;

	if ( alive HELO_TRANSPORT ) then {
		waitUntil {sleep 1;!alive HELO_TRANSPORT;};
		sleep 15;
	};
};

Remove Heli Wreck on respawn (Hopefully)

waitUntil { !isNil "GRLIB_all_fobs" };
waitUntil { !isNil "save_is_loaded" };

firstloop = true;
HELO_TRANSPORT = objNull;
_savedhuron = objNull;

while { true } do {

	// Check if the Helicopter is loaded from a save.
	{if ( typeof _x == huron_typename ) then {_savedhuron = _x;};} foreach vehicles;

	if ( firstloop && !isNull _savedhuron ) then {
		HELO_TRANSPORT = _savedhuron;
	} else {
		HELO_TRANSPORT = huron_typename createVehicle ( getpos huronspawn );
		HELO_TRANSPORT setpos ( getpos huronspawn );
		HELO_TRANSPORT setDir 0;
	};

	firstloop = false;

	publicVariable "HELO_TRANSPORT";
	clearWeaponCargoGlobal HELO_TRANSPORT;
	clearMagazineCargoGlobal HELO_TRANSPORT;
	clearItemCargoGlobal HELO_TRANSPORT;
	clearBackpackCargoGlobal HELO_TRANSPORT;

	if ( alive HELO_TRANSPORT ) then {
		waitUntil {sleep 1;!alive HELO_TRANSPORT;};
		sleep 15;
		deleteVehicle HELO_TRANSPORT;
	};
};


// ******************************************************************************************
// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com *
// ******************************************************************************************
//	@file Name: playerSetupStart.sqf
//	@file Author: [GoT] JoSchaap, AgentRev

private "_player";
_player = _this;

_player setSkill 0;
{_player disableAI _x} foreach ["move","anim","target","autotarget"];
_player setVariable ["BIS_noCoreConversations", true];
_player setVariable ["A3W_corpseEjected", nil, true];
_player allowDamage false;
[_player, true] call fn_hideObjectGlobal;
//_player enableSimulation false;

if (["A3W_unlimitedStamina"] call isConfigOn) then
{
	_player enableFatigue false;
	_player enableStamina false;
};

enableSentences false;

removeAllWeapons _player;
removeUniform _player;
removeVest _player;
removeBackpack _player;
removeGoggles _player;
removeHeadgear _player;

Fix weapon sway & sprinting fatigue

// ******************************************************************************************
// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com *
// ******************************************************************************************
//	@file Name: playerSetupStart.sqf
//	@file Author: [GoT] JoSchaap, AgentRev

private "_player";
_player = _this;

_player setSkill 0;
{_player disableAI _x} foreach ["move","anim","target","autotarget"];
_player setVariable ["BIS_noCoreConversations", true];
_player setVariable ["A3W_corpseEjected", nil, true];
_player allowDamage false;
[_player, true] call fn_hideObjectGlobal;
//_player enableSimulation false;

if (["A3W_unlimitedStamina"] call isConfigOn) then
{
	_player enableFatigue false;
	_player enableStamina false;
	_player allowSprint true;
	_player setCustomAimCoef 0.1;
};

enableSentences false;

removeAllWeapons _player;
removeUniform _player;
removeVest _player;
removeBackpack _player;
removeGoggles _player;
removeHeadgear _player;


#include "script_component.hpp"

ADDON = false;

#include "XEH_PREP.hpp"

ADDON = true;

// Fix setdir
// TODO: remove when added to ace or cba
["ModuleCurator_F", "init", {
    params ["_logic"];

    _logic addEventHandler ["CuratorObjectEdited", {
        params ["", "_unit"];

        if (!local _unit) then {
            private _dir = getDir _unit;
            [_unit, _dir] remoteExec ["setDir", _unit];

            if (_unit == formLeader _unit) then {
                [_unit, _dir] remoteExec ["setFormDir", _unit];
            };
        };
    }];
}] call CBA_fnc_addClassEventHandler;

Remove setDir as it's in CBA now


/* - Specific object init codes depending on classnames.
Format = [Array of classnames as strings, Code to apply]
_this is the reference to the object with the classname */

KPLIB_objectInits = [
    [["Flag_White_F"], {_this setFlagTexture "res\kpflag.jpg";}],
    [["Land_HelipadSquare_F", "Land_HelipadCircle_F", "Land_HelipadRescue_F"], {{[_x, [_this, true]] remoteExecCall ["addCuratorEditableObjects", 2]} forEach allCurators;}],
    [[FOB_box_typename], {_this call F_setFobMass; [_this] remoteExecCall ["F_setLoadableViV", 0, _this];}],
    [[KP_liberation_recycle_building], {_this setVariable ["ace_isRepairFacility", 1, true];}],
    [[KP_liberation_small_storage_building, KP_liberation_large_storage_building], {_this setVariable ["KP_liberation_storage_type", 0, true];}],
    [KP_liberation_medical_facilities, {_this setVariable ["ace_medical_isMedicalFacility", true, true];}],
    [KP_liberation_medical_vehicles, {_this setVariable ["ace_medical_medicClass", 1, true];}]
];

Hide covers on 10T GM Trucks

/* - Specific object init codes depending on classnames.
Format = [Array of classnames as strings, Code to apply]
_this is the reference to the object with the classname */

KPLIB_objectInits = [
    [["Flag_White_F"], {_this setFlagTexture "res\kpflag.jpg";}],
    [["Land_HelipadSquare_F", "Land_HelipadCircle_F", "Land_HelipadRescue_F"], {{[_x, [_this, true]] remoteExecCall ["addCuratorEditableObjects", 2]} forEach allCurators;}],
    [[FOB_box_typename], {_this call F_setFobMass; [_this] remoteExecCall ["F_setLoadableViV", 0, _this];}],
    [[KP_liberation_recycle_building], {_this setVariable ["ace_isRepairFacility", 1, true];}],
    [[KP_liberation_small_storage_building, KP_liberation_large_storage_building], {_this setVariable ["KP_liberation_storage_type", 0, true];}],
    [KP_liberation_medical_facilities, {_this setVariable ["ace_medical_isMedicalFacility", true, true];}],
    [KP_liberation_medical_vehicles, {_this setVariable ["ace_medical_medicClass", 1, true];}],
    // Hide Cover on big GM trucks
    [["gm_ge_army_kat1_454_cargo", "gm_ge_army_kat1_454_cargo_win"], {_this animateSource ["cover_unhide", 0, true];}]
];


params ["_unit"];

if(call Mh_fnc_isDebug) then {
	_unit addEventHandler ["HandleDamage", {
		private _v = _this select 0;
		if (!alive _v) then {
			private _markerId = floor random 10000000000;
			private _markerName = format ["debug_vehicle_%1", _markerId];
			private _marker = createMarker [_markerName, _v];
			_marker setMarkerShape "ICON";
			_marker setMarkerText format ["Destroyed %1", typeof _v];
			_marker setMarkerType "mil_dot";
			[format ["Destroyed vehicle %1, marker with name %2 created", typeOf _v, _markerName], "systemChat", true] call Bis_fnc_mp;
			_v removeAllEventHandlers "HandleDamage";
		};
	}];
}

Remove all items from neutral vehicles

params ["_unit"];

if(call Mh_fnc_isDebug) then {
	_unit addEventHandler ["HandleDamage", {
		private _v = _this select 0;
		if (!alive _v) then {
			private _markerId = floor random 10000000000;
			private _markerName = format ["debug_vehicle_%1", _markerId];
			private _marker = createMarker [_markerName, _v];
			_marker setMarkerShape "ICON";
			_marker setMarkerText format ["Destroyed %1", typeof _v];
			_marker setMarkerType "mil_dot";
			[format ["Destroyed vehicle %1, marker with name %2 created", typeOf _v, _markerName], "systemChat", true] call Bis_fnc_mp;
			_v removeAllEventHandlers "HandleDamage";
		};
	}];
};

clearMagazineCargoGlobal _unit;
clearWeaponCargoGlobal _unit;
clearItemCargoGlobal _unit;


private ["_logic", "_activated", "_bases", "_areas", "_settings", "_spawns"];

_logic     = [_this, 0, objNull, [objNull]] call BIS_fnc_param;
_activated = [_this, 2, true, [true]] call BIS_fnc_param;

if (_activated) then {
	_bases = [(synchronizedObjects _logic), { _x isKindOf "LocationBase_F" }] call CBA_fnc_select;
	_areas = [(synchronizedObjects _logic), { _x isKindOf "LocationArea_F" }] call CBA_fnc_select;

	_settings = [_logic] call HEHU_MF_fnc_getSpawnerSettings;

	_spawns = [_settings, _bases, _areas] call HEHU_MF_fnc_getSpawns;

	[_spawns, _settings] call HEHU_MF_fnc_spawn;
};

true

Use new "param" calls, add null guard

private ["_logic", "_activated", "_bases", "_areas", "_settings", "_spawns"];

_logic     = param [0, objNull, [objNull]];
_activated = param [2, true, [true]];

if (!(isNull _logic) && _activated) then {
	_bases = [(synchronizedObjects _logic), { _x isKindOf "LocationBase_F" }] call CBA_fnc_select;
	_areas = [(synchronizedObjects _logic), { _x isKindOf "LocationArea_F" }] call CBA_fnc_select;

	_settings = [_logic] call HEHU_MF_fnc_getSpawnerSettings;

	_spawns = [_settings, _bases, _areas] call HEHU_MF_fnc_getSpawns;

	[_spawns, _settings] call HEHU_MF_fnc_spawn;
};

true


/*
	Author: Will Hart, based on Shuko's shkPos

	Description:
	  Selects a random position within the objective

	Parameter(s):
	  _this select 0: OBJECITVE, the objective to return a position for

    Example:
	  _pos = [_obj] call AFW_fnc_getRandomSpawnPosition;

	Returns:
	  A position at which to spawn the objective
*/

private ["_obj", "_pos", "_centre", "_rad"];

_obj = _THIS(0);
_centre = O_POS(_obj);
_rad = O_R(_obj);

_pos = [_centre, random 360, _rad, false, 1] call SHK_pos;
_pos

Build single function for getting the respawn position

/*
	Author: Will Hart

	Description:
	  Finds a random spawn position suitable for the given object within the objective radius

	Parameter(s):
	  _this select 0: ARRAY, The objective to find a spawn point for
	  _this select 1: STRING, The type of object to find a spawn point for

    Example:
	  pos = [_obj, "B_Officer_F"] call AFW_fnc_getRandomSpawnPosition;

	Returns:
	  A position to spawn the object at or the initial position if none can be found
*/

private ["_obj", "_safePos", "_radius", "_initial", "_temp", "_object", "_count"];

#include "defines.sqf"

_obj = _this select 0;
_object = _this select 1;

_radius = O_R(_obj);
_initial = O_POS(_obj);
_safePos = [];
_count = 0;

if (O_RANDOMISE(_obj)) then {

    while {format ["%1", _safePos] == "[]" and _count < 10} do {
        // find a random safe position
        _temp = [_initial, random 360, _radius, false, 1] call SHK_pos;
        _safePos = _temp findEmptyPosition [0, _radius, _object];
        _count = _count + 1;
    };

    if (format ["%1", _safePos] == "[]") {
        _safePos = _initial;
    };
} else {
    _safePos = _initial;
};

// return the crate handle
_safePos


setViewDistance 2000;

// ACE Interation Root
_FPC_Interact_Root = ['FPC_INTERACTION_ROOT','Liberation','',{},{true}] call ace_interact_menu_fnc_createAction;
[ACE_player, 1, ["ACE_SelfActions"], _FPC_Interact_Root] call ace_interact_menu_fnc_addActionToObject;

// Arsenal Handling
_FPC_Interact_Arsenal = ['FPC_INTERACTION_ARSENAL','Open Arsenal','\z\ace\addons\magazinerepack\UI\repack_ca.paa',{[] call FPC_fnc_openArsenal;},{[] call FPC_fnc_arsenalCondition;}] call ace_interact_menu_fnc_createAction;
[ACE_player, 1, ["ACE_SelfActions", "FPC_INTERACTION_ROOT"], _FPC_Interact_Arsenal] call ace_interact_menu_fnc_addActionToObject;

Remove setViewDistance setting. ACE Takes care of this


// Check if unit name is already known by ACE mod
private _name = _unit getVariable ["ACE_Name", ""];

if (_name != "") exitWith { _name };

// Update name if unit is alive
if (alive _unit) exitWith {
  _name = name _unit;
  _unit setVariable ["anrop_aar_unit_name", _name];
  _name
};

// Try to use name saved by AAR when unit was last alive
_name = _unit getVariable ["anrop_aar_unit_name", ""];
if (_name != "") exitWith { _name };

_name = name _unit;
_unit setVariable ["anrop_aar_unit_name", _name];
_name

Add missing parameter to getUnitName function

params ["_unit"];

// Check if unit name is already known by ACE mod
private _name = _unit getVariable ["ACE_Name", ""];

if (_name != "") exitWith { _name };

// Update name if unit is alive
if (alive _unit) exitWith {
  _name = name _unit;
  _unit setVariable ["anrop_aar_unit_name", _name];
  _name
};

// Try to use name saved by AAR when unit was last alive
_name = _unit getVariable ["anrop_aar_unit_name", ""];
if (_name != "") exitWith { _name };

_name = name _unit;
_unit setVariable ["anrop_aar_unit_name", _name];
_name


params ["_unit"];

if(call Mh_fnc_isDebug) then {
	_unit addEventHandler ["HandleDamage", {
		private _v = _this select 0;
		if (!alive _v) then {
			[format ["Destroyed vehicle %1", typeOf _v], "systemChat", true] call Bis_fnc_mp;
			_v removeAllEventHandlers "HandleDamage";
		};
	}];
}

Add a debug marker on the map for each neutral vehicle destroyed

params ["_unit"];

if(call Mh_fnc_isDebug) then {
	_unit addEventHandler ["HandleDamage", {
		private _v = _this select 0;
		if (!alive _v) then {
			private _markerId = floor random 10000000000;
			private _markerName = format ["debug_vehicle_%1", _markerId];
			private _marker = createMarker [_markerName, _v];
			_marker setMarkerShape "ICON";
			_marker setMarkerText format ["Destroyed %1", typeof _v];
			_marker setMarkerType "mil_dot";
			[format ["Destroyed vehicle %1, marker with name %2 created", typeOf _v, _markerName], "systemChat", true] call Bis_fnc_mp;
			_v removeAllEventHandlers "HandleDamage";
		};
	}];
}


params ["_projectile", "_side"];

private _id = format ["%1", _projectile];
private _position = getPosASL _projectile;
private _dir = direction _projectile;

private _simulation = getText (configFile >> "cfgAmmo" >> typeOf _projectile >> "simulation");

private _lastTime = time;

waitUntil {
	if !(isNull _projectile) then {
		_dir = direction _projectile;
		_position = getPosASL _projectile;

		if (time >= (_lastTime + 1)) then {
			_lastTime = time;

			[_id, _position, _dir, _simulation, _side] spawn {
				params ["_id", "_position", "_dir", "_simulation", "_side"];

				private _arr = ["object",
					["type", ["string", "ProjectilePosition"]],
					["projectile", [_id, ([_position, _dir] call anrop_aar_fnc_serializePosition), _side, _simulation] call anrop_aar_fnc_serializeProjectile]
				];
				_arr call anrop_aar_fnc_sendEvent;
			};
		};
	};

	isNull _projectile;
};

private _arr = ["object",
	["type", ["string", "ProjectileDestroyed"]],
	["projectile", [_id, ([_position, _dir] call anrop_aar_fnc_serializePosition), _side, _simulation] call anrop_aar_fnc_serializeProjectile]
];
_arr call anrop_aar_fnc_sendEvent;

Remove spawn from track projectile

params ["_projectile", "_side"];

private _id = format ["%1", _projectile];
private _position = getPosASL _projectile;
private _dir = direction _projectile;

private _simulation = getText (configFile >> "cfgAmmo" >> typeOf _projectile >> "simulation");

private _lastTime = time;

waitUntil {
	if !(isNull _projectile) then {
		_dir = direction _projectile;
		_position = getPosASL _projectile;

		if (time >= (_lastTime + 1)) then {
			_lastTime = time;

			private _arr = ["object",
				["type", ["string", "ProjectilePosition"]],
				["projectile", [_id, ([_position, _dir] call anrop_aar_fnc_serializePosition), _side, _simulation] call anrop_aar_fnc_serializeProjectile]
			];
			_arr call anrop_aar_fnc_sendEvent;
		};
	};

	isNull _projectile;
};

private _arr = ["object",
	["type", ["string", "ProjectileDestroyed"]],
	["projectile", [_id, ([_position, _dir] call anrop_aar_fnc_serializePosition), _side, _simulation] call anrop_aar_fnc_serializeProjectile]
];
_arr call anrop_aar_fnc_sendEvent;


waitUntil { !isNil "blufor_sectors" };
waitUntil { !isNil "combat_readiness" };
waitUntil { !isNil "sectors_bigtown" };
waitUntil { !isNil "active_sectors" };

while { true } do {
	if ( (count blufor_sectors) >= ((count sectors_allSectors) * 0.9)) then {
		if ( combat_readiness > 0 ) then {
			combat_readiness = combat_readiness - 0.25;
		};
	} else {
		if ( (combat_readiness < ((count blufor_sectors) * 2) && combat_readiness < 35 ) ||
			(combat_readiness < ((count blufor_sectors) * 1.25) && combat_readiness < 60 )) then {
			combat_readiness = combat_readiness + 0.25;
			stats_readiness_earned = stats_readiness_earned + 0.25;
		};
	};

	if ( combat_readiness > 100.0 && GRLIB_difficulty_modifier < 2 ) then { combat_readiness = 100.0 };

	sleep (45 + random (45));
};

Increase time for readiness increase a little bit

waitUntil { !isNil "blufor_sectors" };
waitUntil { !isNil "combat_readiness" };
waitUntil { !isNil "sectors_bigtown" };
waitUntil { !isNil "active_sectors" };

while { true } do {
	if ( (count blufor_sectors) >= ((count sectors_allSectors) * 0.9)) then {
		if ( combat_readiness > 0 ) then {
			combat_readiness = combat_readiness - 0.25;
		};
	} else {
		if ( (combat_readiness < ((count blufor_sectors) * 2) && combat_readiness < 35 ) ||
			(combat_readiness < ((count blufor_sectors) * 1.25) && combat_readiness < 60 )) then {
			combat_readiness = combat_readiness + 0.25;
			stats_readiness_earned = stats_readiness_earned + 0.25;
		};
	};

	if ( combat_readiness > 100.0 && GRLIB_difficulty_modifier < 2 ) then { combat_readiness = 100.0 };

	sleep (180 + random (180));
};


build_confirmed = 0;
enableSaving [ false, false ];

[] call compileFinal preprocessFileLineNumbers "scripts\shared\liberation_functions.sqf";
[] call compileFinal preprocessFileLineNumbers "scripts\shared\init_sectors.sqf";
[] call compileFinal preprocessFileLineNumbers "scripts\shared\fetch_params.sqf";
[] call compileFinal preprocessFileLineNumbers "gameplay_constants.sqf";
[] call compileFinal preprocessFileLineNumbers "classnames.sqf";
[] call compileFinal preprocessFileLineNumbers "custom.sqf";

// Start limiting of Arsenal Assets
ARSENAL_ISFULL = true;
if ((["ArsenalLimitation",1] call bis_fnc_getParamValue) == 1) then {
  ARSENAL_ISFULL = false;
  [] call compileFinal preprocessFileLineNumbers "arsenal.sqf";
};

[] call compileFinal preprocessFileLineNumbers "scripts\shared\init_shared.sqf";

if (isServer) then {
  setTimeMultiplier (["DayDuration",4] call bis_fnc_getParamValue);
  [] call compileFinal preprocessFileLineNumbers "scripts\server\init_server.sqf";
};

if (!isDedicated && hasInterface) then {
  waitUntil { alive player };
  [] call compileFinal preprocessFileLineNumbers "scripts\client\init_client.sqf";
};

[] spawn FPC_fnc_initWeather;

disableRemoteSensors true;

Add ACE Max Carry and Drag Weight adjust for lifting filled ammoboxes

build_confirmed = 0;
enableSaving [ false, false ];

[] call compileFinal preprocessFileLineNumbers "scripts\shared\liberation_functions.sqf";
[] call compileFinal preprocessFileLineNumbers "scripts\shared\init_sectors.sqf";
[] call compileFinal preprocessFileLineNumbers "scripts\shared\fetch_params.sqf";
[] call compileFinal preprocessFileLineNumbers "gameplay_constants.sqf";
[] call compileFinal preprocessFileLineNumbers "classnames.sqf";
[] call compileFinal preprocessFileLineNumbers "custom.sqf";

// Start limiting of Arsenal Assets
ARSENAL_ISFULL = true;
if ((["ArsenalLimitation",1] call bis_fnc_getParamValue) == 1) then {
  ARSENAL_ISFULL = false;
  [] call compileFinal preprocessFileLineNumbers "arsenal.sqf";
};

[] call compileFinal preprocessFileLineNumbers "scripts\shared\init_shared.sqf";

if (isServer) then {
  setTimeMultiplier (["DayDuration",4] call bis_fnc_getParamValue);
  [] call compileFinal preprocessFileLineNumbers "scripts\server\init_server.sqf";
};

if (!isDedicated && hasInterface) then {
  waitUntil { alive player };
  [] call compileFinal preprocessFileLineNumbers "scripts\client\init_client.sqf";
};

[] spawn FPC_fnc_initWeather;

disableRemoteSensors true;

// Set ACE Vars for Max Dragging and Carrying Weight.
missionNamespace setVariable ["ACE_maxWeightDrag", 8000];
missionNamespace setVariable ["ACE_maxWeightCarry", 8000];


uav_control_permission = "group"; // Scope for who is able to access the UAV controls ("owner", "group", "side")

Refactor the UAV control addon from @IvanMMM

uav_control_permission = "owner"; // Scope for who is able to access the UAV controls ("owner", "group", "side")


// Teambalancer
_uid = getPlayerUID player;
_teamBal = ["A3W_teamBalance", 0] call getPublicVar;
if (playerSide in [BLUFOR,OPFOR] && _teamBal > 0) then{
	private ["_justPlayers", "_serverCount", "_sideCount"];
	_justPlayers = allPlayers - entities "HeadlessClient_F";
	_serverCount = count _justPlayers;
	_sideCount = playerSide countSide _justPlayers;
	if (_serverCount >= 5 && (_sideCount > (_teamBal/100) * _serverCount)) then{
		if !((getPlayerUID player) call isAdmin) then {
			if(!isNil "pvar_teamSwitchList")then{
				{ if (_x select 0 == _uid) exitWith {
					if(_x select 1 == playerSide)then{
						//If player is locked to the side that is unbalanced, move their lock to indie
						_x set [1, INDEPENDENT];
					};
				} } forEach pvar_teamSwitchList;
				publicVariable "pvar_teamSwitchList";
			};
			["TeamBalance",false,1] call BIS_fnc_endMission;
		} else {
			systemChat "You have used your admin to join a stacked team. Only do this for admin duties.";
		};
	};
};

Change to at least 10 players before team balanced. Saw 6+ blufor players only, today on Chernarus

// Teambalancer
_uid = getPlayerUID player;
_teamBal = ["A3W_teamBalance", 0] call getPublicVar;
if (playerSide in [BLUFOR,OPFOR] && _teamBal > 0) then{
	private ["_justPlayers", "_serverCount", "_sideCount"];
	_justPlayers = allPlayers - entities "HeadlessClient_F";
	_serverCount = count _justPlayers;
	_sideCount = playerSide countSide _justPlayers;
	if (_serverCount >= 10 && (_sideCount > (_teamBal/100) * _serverCount)) then{
		if !((getPlayerUID player) call isAdmin) then {
			if(!isNil "pvar_teamSwitchList")then{
				{ if (_x select 0 == _uid) exitWith {
					if(_x select 1 == playerSide)then{
						//If player is locked to the side that is unbalanced, move their lock to indie
						_x set [1, INDEPENDENT];
					};
				} } forEach pvar_teamSwitchList;
				publicVariable "pvar_teamSwitchList";
			};
			["TeamBalance",false,1] call BIS_fnc_endMission;
		} else {
			systemChat "You have used your admin to join a stacked team. Only do this for admin duties.";
		};
	};
};


/*
 *	File: fn_extensionTest.sqf
 *	Author: Adanteh
 *	Tests if the pythia extension works as expected
 */

private _result = ["Pythia.test"] call py3_fnc_callExtension;
if (_result isEqualTo "OK") exitWith {
	diag_log format ["ERROR: @Pythia mod loaded, but pythia.dll not loaded!"];
	false
};

private _result = ["Pythia.ping", "pong"] call py3_fnc_callExtension;
if !(_result isEqualTo ["pong"]) exitWith {
	diag_log format ["ERROR: @Pythia mod loaded, but error in pythia.dll: '%1'", _result];
	false
};

diag_log format ["@Pythia mod and extension loaded a-okay"];

true

Return error text on extension test

/*
 *	File: fn_extensionTest.sqf
 *	Author: Adanteh
 *	Tests if the pythia extension works as expected
 */

private _result = ["Pythia.test"] call py3_fnc_callExtension;
if !(_result isEqualTo "OK") exitWith {
	diag_log format ["ERROR: @Pythia mod loaded, but pythia.dll not loaded!"];
	[false, "ERROR: @Pythia mod loaded, but pythia.dll not loaded!"];
};

private _result = ["Pythia.ping", "pong"] call py3_fnc_callExtension;
if !(_result isEqualTo ["pong"]) exitWith {
	diag_log format ["ERROR: @Pythia mod loaded, but error in pythia.dll: '%1'", _result];
	[false, "ERROR: @Pythia mod loaded, but error in pythia.dll"];
};

diag_log format ["@Pythia mod and extension loaded a-okay"];
[true, "@Pythia mod and extension loaded a-okay"];


params ["_object"];
if (!local _object) exitWith {false};

_object call FP_fnc_clearVehicle;
_object allowDamage false;

// Add ACE Actions to the Box.
_action_arsenal = ["fpc_arsenal", "Open Arsenal", "", {["Open",true] spawn BIS_fnc_arsenal;}, {true}] call ace_interact_menu_fnc_createAction;
[_object, 0, ["ACE_MainActions"], _action_arsenal] spawn ace_interact_menu_fnc_addActionToObject;
true

Use nonblocking spawn for clearVehicle call

params ["_object"];
if (!local _object) exitWith {false};

_object spawn FP_fnc_clearVehicle;
_object allowDamage false;

// Add ACE Actions to the Box.
_action_arsenal = ["fpc_arsenal", "Open Arsenal", "", {["Open",true] spawn BIS_fnc_arsenal;}, {true}] call ace_interact_menu_fnc_createAction;
[_object, 0, ["ACE_MainActions"], _action_arsenal] spawn ace_interact_menu_fnc_addActionToObject;
true


#include "admiral_macros.h"

#include "\userconfig\admiral\log\postinit.h"
#include "logbook.h"

[] call adm_fnc_compile;

[] call adm_settings_fnc_init; DEBUG("admiral.settings","Init function 'adm_settings_fnc_init' called.");
[] call adm_cqc_fnc_init; DEBUG("admiral.cqc","Init function 'adm_cqc_fnc_init' called.");
[] spawn adm_cqc_fnc_globalForceFire;

/*
if (adm_isBehaviorEnabled) then {
    INFO("admiral.behavior","Admiral Behavior system is enabled.");
    [] call adm_behavior_fnc_init; DEBUG("admiral.behavior","Init function 'adm_behavior_fnc_init' called.");
};
*/

adm_isInitialized = true;
//["admiral.initialized", []] call adm_event_fnc_emitEvent;
INFO("admiral",FMT_1("Admiral version '%1' has been successfully initialized on HC.",STR_ADMIRAL_VERSION));

Fix for double spawn on HC.

#include "admiral_macros.h"

#include "\userconfig\admiral\log\postinit.h"
#include "logbook.h"

[] call adm_fnc_compile;

[] call adm_settings_fnc_init; DEBUG("admiral.settings","Init function 'adm_settings_fnc_init' called.");
[] call adm_cqc_fnc_init; DEBUG("admiral.cqc","Init function 'adm_cqc_fnc_init' called.");
[] spawn adm_cqc_fnc_globalForceFire;

/*
if (adm_isBehaviorEnabled) then {
    INFO("admiral.behavior","Admiral Behavior system is enabled.");
    [] call adm_behavior_fnc_init; DEBUG("admiral.behavior","Init function 'adm_behavior_fnc_init' called.");
};
*/

INFO("admiral",FMT_1("Admiral version '%1' has been successfully initialized on HC.",STR_ADMIRAL_VERSION));


// Function to convert group into appropriate format to spawn group
        private ["_grptemp","_var"];
        _var = _this select 0;
		if ((_var select 0) == "resistance") then {
			_var set [0,"Guerrila"];
		};
		_grptemp =  (configFile >> "CfgGroups" >> (_var select 0) >> (_var select 1) >> (_var select 2) >> (_var select 3));
		//diag_log format ["_grptemp created = %1", _grptemp];
		_grptemp;

Fix for PDB and DEP compatibility with GUER

// Function to convert group into appropriate format to spawn group
        private ["_grptemp","_var","_side"];
        _var = _this select 0;
		if ((_var select 0) == "resistance") then {
			_side = "Guerrila";
		} else {
			_side = _var select 0;
		};
		_grptemp =  (configFile >> "CfgGroups" >> _side >> (_var select 1) >> (_var select 2) >> (_var select 3));
		//diag_log format ["_grptemp created = %1", _grptemp];
		_grptemp;


// ******************************************************************************************
// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com *
// ******************************************************************************************
//	@file Version: 1.0
//	@file Name: updateTeamKiller.sqf
//	@file Author: [404] Deadbeat
//	@file Created: 20/11/2012 05:19

if (_this < 2) exitWith
{
	call teamkillMessage;
};

setPlayerRespawnTime 1e11;
player setDamage 1;
sleep 1;

9999 cutText ["", "BLACK", 3];
sleep 3;

uiNamespace setVariable ["BIS_fnc_guiMessage_status", false];
_msgBox = [localize "STR_WL_Punish_Teamkiller"] spawn BIS_fnc_guiMessage;
_time = diag_tickTime;

waitUntil {scriptDone _msgBox || diag_tickTime - _time >= 20};
endMission "LOSER";
waitUntil {uiNamespace setVariable ["BIS_fnc_guiMessage_status", false]; closeDialog 0; false};

Add tentative fix for teamkillers

// ******************************************************************************************
// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com *
// ******************************************************************************************
//	@file Version: 1.0
//	@file Name: updateTeamKiller.sqf
//	@file Author: [404] Deadbeat
//	@file Created: 20/11/2012 05:19

if (_this < 2) exitWith
{
	call teamkillMessage;
};

pvar_teamSwitchUnlock = getPlayerUID player;
publicVariableServer "pvar_teamSwitchUnlock";

pvar_teamSwitchLock = [getPlayerUID player, INDEPENDENT];
publicVariableServer "pvar_teamSwitchLock";

setPlayerRespawnTime 1e11;
player setDamage 1;
sleep 1;

9999 cutText ["", "BLACK", 3];
sleep 3;

uiNamespace setVariable ["BIS_fnc_guiMessage_status", false];
_msgBox = [localize "STR_WL_Punish_Teamkiller"] spawn BIS_fnc_guiMessage;
_time = diag_tickTime;

waitUntil {scriptDone _msgBox || diag_tickTime - _time >= 20};
endMission "LOSER";
waitUntil {uiNamespace setVariable ["BIS_fnc_guiMessage_status", false]; closeDialog 0; false};


// ******************************************************************************************
// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com *
// ******************************************************************************************
//	@file Version: 1.0
//	@file Name: loadAdministratorMenu.sqf
//	@file Author: [404] Deadbeat
//	@file Created: 20/11/2012 05:19
//	@file Args:

#define adminMenu_option 50001
disableSerialization;

private ["_start","_panelOptions","_adminSelect","_displayAdmin"];
_uid = getPlayerUID player;
if ([_uid, 2] call isAdmin) then {
	_start = createDialog "AdminMenu";

	_displayAdmin = uiNamespace getVariable "AdminMenu";
	_adminSelect = _displayAdmin displayCtrl adminMenu_option;

	_panelOptions = ["Player Management",
					"Vehicle Management",
					"Spectator Cam",
					"Player Markers"

	];

	{
		_adminSelect lbAdd _x;
	} forEach _panelOptions;
};

Allow Teleport for High Admin

// ******************************************************************************************
// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com *
// ******************************************************************************************
//	@file Version: 1.0
//	@file Name: loadAdministratorMenu.sqf
//	@file Author: [404] Deadbeat
//	@file Created: 20/11/2012 05:19
//	@file Args:

#define adminMenu_option 50001
disableSerialization;

private ["_start","_panelOptions","_adminSelect","_displayAdmin"];
_uid = getPlayerUID player;
if ([_uid, 2] call isAdmin) then {
	_start = createDialog "AdminMenu";

	_displayAdmin = uiNamespace getVariable "AdminMenu";
	_adminSelect = _displayAdmin displayCtrl adminMenu_option;

	_panelOptions = ["Player Management",
					"Vehicle Management",
					"Spectator Cam",
					"Player Markers",
					"Teleport"

	];

	{
		_adminSelect lbAdd _x;
	} forEach _panelOptions;
};


#include "script_component.hpp"
/*
    Function: fpa_common_fnc_getPlayer

    API:
        Any

    Description:
        Takes a string and returns a player object if found, otherwise objNull
        Can be used partially, to find "cuel" you can pass ["cu"]
        Will be objNull if not found, or if theres more than one match
        Case insensitive

    Parameters:
        _name - Player name

    Examples:
    (begin example)
        _cuel = "cu" call fpa_common_fnc_getPlayer;
        _cuel = ["Cuel"] call fpa_common_fnc_getPlayer;
    (end)

    Returns:
        Object

    Author:
        Cuel 2015-04-21
*/
params ["_name"];
_name = toLower _name;
private _players = [] call CBA_fnc_players;
private _index = _players findIf {_name in toLower(name _x)};

if (_index isEqualTo -1) exitWith {objNull};
_players select _index;

Make getPlayer function also check for multiple players found, restore same functionality as old function

#include "script_component.hpp"
/*
    Function: fpa_common_fnc_getPlayer

    API:
        Any

    Description:
        Takes a string and returns a player object if found, otherwise objNull
        Can be used partially, to find "cuel" you can pass ["cu"]
        Will be objNull if not found, or if theres more than one match
        Case insensitive

    Parameters:
        _name - Player name

    Examples:
    (begin example)
        _cuel = "cu" call fpa_common_fnc_getPlayer;
        _cuel = ["Cuel"] call fpa_common_fnc_getPlayer;
    (end)

    Returns:
        Object

    Author:
        Cuel 2015-04-21
*/
params ["_name"];
_name = toLower _name;
private _players = ([] call CBA_fnc_players) select {_name in toLower(name _x)};
if ((count _players) isEqualTo 1) exitWith {_players select 0};
objNull


ACE_player setUnitLoadout (ACE_player getVariable ["Saved_Loadout",[]]);

if (firstload) then {
  removeAllWeapons ACE_player;
  removeAllItems ACE_player;
  removeAllAssignedItems ACE_player;
  removeUniform ACE_player;
  removeVest ACE_player;
  removeBackpack ACE_player;
  removeHeadgear ACE_player;
  removeGoggles ACE_player;
  ACE_player forceAddUniform "usm_bdu_w";
  ACE_player addHeadgear "usm_helmet_pasgt_w";
  ACE_player addVest "usm_vest_rba_lbe_rm";
  firstload = false;
};

[] spawn FPC_fnc_show_redeploy_dialog;

Add Common items to default spawn

ACE_player setUnitLoadout (ACE_player getVariable ["Saved_Loadout",[]]);

if (firstload) then {
  removeAllWeapons ACE_player;
  removeAllItems ACE_player;
  removeAllAssignedItems ACE_player;
  removeUniform ACE_player;
  removeVest ACE_player;
  removeBackpack ACE_player;
  removeHeadgear ACE_player;
  removeGoggles ACE_player;
  ACE_player forceAddUniform "usm_bdu_w";
  ACE_player addHeadgear "usm_helmet_pasgt_w";
  ACE_player addVest "usm_vest_rba_lbe_rm";
  ACE_player linkItem "ItemMap";
  ACE_player linkItem "ItemCompass";
  ACE_player linkItem "ItemWatch";
  firstload = false;
};

[] spawn FPC_fnc_show_redeploy_dialog;


Fix accidental removal 2. Mission function


Revert "Revert "Added High Value Drugrunner""

//	@file Version: 1.0
//	@file Name: HvD.sqf
//	@file Author: Based on HvT.sqf by Cael817, CRE4MPIE. Rewrite by LouD.
//	@file Info:

if (isDedicated) exitWith {};
waitUntil {!isNull player};
waitUntil {!isNil "playerSpawning" && {!playerSpawning}};

for "_i" from 0 to 1 step 0 do
{
	_lsdInv = "lsd" call mf_inventory_get; _lsd = _lsdInv select 1;
	_marInv = "marijuana" call mf_inventory_get; _mar = _marInv select 1;
	_cocInv = "cocaine" call mf_inventory_get; _coc = _cocInv select 1;
	_herInv = "heroin" call mf_inventory_get; _her = _herInv select 1;

	"lsd" call mf_inventory_get;

	if (isNil "createDrugsMarker" && _lsd > 3 || isNil "createDrugsMarker" && _mar > 3 || isNil "createDrugsMarker" && _coc > 3 || isNil "createDrugsMarker" && _her > 3) then
		{
			_title  = "<t color='#ff0000' size='1.2' align='center'>Drugsrunner! </t>
";
			_name = format ["%1
 ",name player];
			_text = "<t color='#FFFFFF' shadow='1' shadowColor='#000000' align='center'>Someone has spotted you carrying drugs and has marked your location on the map!</t>
";
			hint parsetext (_title +  _name +  _text);
			playsound "Topic_Done";

			createDrugsMarker =
			{
				_markerName = format ["%1_drugsMarker",name player];
				_drugMarker = createMarker [_markerName, getPos (vehicle player)];
				_drugMarker setMarkerShape "ICON";
				_drugMarker setMarkerText (format ["Drugsrunner: %1", name player]);
				_drugMarker setMarkerColor "ColorRed";
				_drugMarker setMarkerType "mil_dot";
				sleep 45;
				deleteMarker _markerName;
				createDrugsMarker = nil;
			};
		[] spawn createDrugsMarker;
		};
}; //will run infinitely


{:base-url "https://clojars.org"
 :bcrypt-work-factor 12
 :bind "127.0.0.1"
 :cdn-token "NOTSET"
 :cdn-url "https://repo.clojars.org"
 :cloudfiles-container "NOTSET"
 :cloudfiles-token "NOTSET"
 :cloudfiles-user "NOTSET"
 :db {:dbtype "postgresql"
      :dbname "clojars"
      :host "localhost"
      :port #profile {:default 55432
                      :test #or [#env DB_PORT 55433]
                      :production 5432}
      :user #profile {:default "clojars"
                      :production "NOTSET"}
      :password #profile {:default "clojars"
                          :production "NOTSET"}}
 :deletion-backup-dir #profile {:default "NOTSET"
                                :test "data/test/repo-backup"}
 :index-path "data/index"
 :mail {:from "noreply@clojars.org"
        :hostname "127.0.0.1"
        :ssl false}
 :nrepl-port 7991
 :port #profile {:default 8080
                 :test 0
                 :production 8001}
 :repo #profile {:default "data/dev_repo"
                 :test "data/test/repo"
                 :production "NOTSET"}
 :sentry-dsn "NOTSET"
 :stats-dir "data/stats"}

Set single value for db username

{:base-url "https://clojars.org"
 :bcrypt-work-factor 12
 :bind "127.0.0.1"
 :cdn-token "NOTSET"
 :cdn-url "https://repo.clojars.org"
 :cloudfiles-container "NOTSET"
 :cloudfiles-token "NOTSET"
 :cloudfiles-user "NOTSET"
 :db {:dbtype "postgresql"
      :dbname "clojars"
      :host "localhost"
      :port #profile {:default 55432
                      :test #or [#env DB_PORT 55433]
                      :production 5432}
      :user "clojars"
      :password #profile {:default "clojars"
                          :production "NOTSET"}}
 :deletion-backup-dir #profile {:default "NOTSET"
                                :test "data/test/repo-backup"}
 :index-path "data/index"
 :mail {:from "noreply@clojars.org"
        :hostname "127.0.0.1"
        :ssl false}
 :nrepl-port 7991
 :port #profile {:default 8080
                 :test 0
                 :production 8001}
 :repo #profile {:default "data/dev_repo"
                 :test "data/test/repo"
                 :production "NOTSET"}
 :sentry-dsn "NOTSET"
 :stats-dir "data/stats"}


{:deps
 {org.clojure/clojure {:mvn/version "1.10.1"}
  org.clojure/math.combinatorics {:mvn/version "0.1.6"}}

 :aliases
 {:test {:extra-paths ["test"]
         :extra-deps {com.cognitect/test-runner {:git/url "https://github.com/cognitect-labs/test-runner.git"
                                                 :sha "b6b3193fcc42659d7e46ecd1884a228993441182"}}
         :main-opts ["-m" "cognitect.test-runner"]}}}

Use clojure 1.10.2 for generating Dockerfiles

{:deps
 {org.clojure/clojure {:mvn/version "1.10.2"}
  org.clojure/math.combinatorics {:mvn/version "0.1.6"}}

 :aliases
 {:test {:extra-paths ["test"]
         :extra-deps {com.cognitect/test-runner {:git/url "https://github.com/cognitect-labs/test-runner.git"
                                                 :sha "b6b3193fcc42659d7e46ecd1884a228993441182"}}
         :main-opts ["-m" "cognitect.test-runner"]}}}