anchor.diff:      </Content>
       <Content Include=\"Background.png\">
         <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  -    </Content>" + resources.ToString() + "
  +    </Content>" + resourcesBuilder.ToString() + "
       <Content Include=\"SplashScreenImage.jpg\" />
     </ItemGroup>
     <Import Project=\"$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.$(TargetFrameworkProfile).Overrides.targets\" />
  
positive.code: 
  let csprojItems = new StringBuilder()
  let csprojPages = new StringBuilder()
  let resources = new StringBuilder()
  let references = new StringBuilder()
  let usings = new StringBuilder()
  let xmlns = new StringBuilder()
  
  let actions  = new Hashtable()
  let triggers = new Hashtable()
  
  let parseXml = 
      let newXaml = new StringBuilder()
  
negative.code:     let mutable fileName = ""
      let mutable imageCounter = 1
      let tab = "    "
      let actions  = new Hashtable()
      let actionsAdditions = new Hashtable()
      let triggers = new Hashtable()
      let triggersAdditions = new Hashtable()
      let usingsBuilder = new StringBuilder()
      let xmlnsBuilder = new StringBuilder()
      let usings = new Hashtable()
      let xmlns = new Hashtable()
      let currentBuilder = new StringBuilder()
      let currentAdditionsBuilder = new StringBuilder()
      let builderAppend = append currentBuilder
      let tempStack = new Stack()
      let getNumber (sizeAttr : string) = sizeAttr.Substring(0, sizeAttr.Length - 2)
      let getAttr (nodeName : string) (attrName : string) =
          let value = reader.GetAttribute(attrName)
          if value = null then raise ( NotFoundAttributeException ("A node \"" + nodeName + "\" doesn't have an attribute " + "\"" + attrName + "\""))
          else value
      let tryGetAttribute (nodeName : string) (attrName : string) =
          try getAttr nodeName attrName
          with
          | NotFoundAttributeException(str) -> 
              printfn "%s" str
              exit 2
      try
          while reader.Read() do
              let name = reader.Name
              let depth = reader.Depth
              let depthTab = if depth > 0 then String.replicate (reader.Depth - 1) tab else ""
              match name with
              | "application" when reader.NodeType <> XmlNodeType.EndElement -> 
                  projectName <- tryGetAttribute name "name"
              | "action" when reader.NodeType <> XmlNodeType.EndElement ->
                  tempStack.Push(tryGetAttribute name "control-id")
              | "action" when reader.NodeType = XmlNodeType.EndElement ->
                  // ключ - id контрола, значение - код, который нужно выполнить
                  let id = tempStack.Pop() :?> string
                  actions.Add(id, currentBuilder.ToString())
                  actionsAdditions.Add(id, currentAdditionsBuilder.ToString())
                  currentBuilder.Clear() |> ignore
                  currentAdditionsBuilder.Clear() |> ignore
              | "trigger" when reader.NodeType <> XmlNodeType.EndElement ->
                  tempStack.Push(tryGetAttribute name "event")
                  tempStack.Push(tryGetAttribute name "form-id")
              | "trigger" when reader.NodeType = XmlNodeType.EndElement ->
                  // ключ - пара, в которой 1 элемент - имя формы, 2 элемент - событие, занчение - код, который нужно выполнить
                  let formName = tempStack.Pop() :?> string
                  let event = tempStack.Pop() :?> string;
                  triggers.Add((formName, event), currentBuilder.ToString())
                  triggersAdditions.Add((formName, event), currentAdditionsBuilder.ToString())
                  currentBuilder.Clear() |> ignore
                  currentAdditionsBuilder.Clear() |> ignore
              | "if" when reader.NodeType <> XmlNodeType.EndElement -> builderAppend <| "\nif (" + (tryGetAttribute name "condition") + ")"
              | "then" when reader.NodeType <> XmlNodeType.EndElement -> builderAppend <| "\n{"
              | "then" when reader.NodeType = XmlNodeType.EndElement -> builderAppend <| "\n}"
              | "else" when reader.NodeType <> XmlNodeType.EndElement -> builderAppend <| "\nelse\n{"
              | "else" when reader.NodeType = XmlNodeType.EndElement -> builderAppend <| "\n}"
              | "transition" -> builderAppend <| "\nNavigationService.Navigate(new Uri(\"/" + (tryGetAttribute name "form-id") + ".xaml\", UriKind.Relative));"
              | "login-request" -> 
                  builderAppend <| ("\nHttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(\"" + (tryGetAttribute name "url") + "\");
  myRequest.Method = \"POST\";
  myRequest.ContentType = \"application/x-www-form-urlencoded\";
  myRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), myRequest);") 
                  append currentAdditionsBuilder <| "\nprivate void GetRequestStreamCallback(IAsyncResult callbackResult)
  {
      HttpWebRequest myRequest = (HttpWebRequest)callbackResult.AsyncState;
      Stream postStream = myRequest.EndGetRequestStream(callbackResult);
  
      string postData = \"login=\"+" + (tryGetAttribute name "login-id") + ".Text + \"&password=\" + " + (tryGetAttribute name"password-id") + ".Text;
      byte[] byteArray = Encoding.UTF8.GetBytes(postData);
  
      postStream.Write(byteArray, 0, byteArray.Length);
  