OK, turing.

<- leave blank

Wed Nov 20 06:55:17 EST 2019

diff -r 8f9f3ee2eacf sys/src/9/boot/bootrc
--- a/sys/src/9/boot/bootrc Mon Nov 11 13:35:47 2019 -0800
+++ b/sys/src/9/boot/bootrc Wed Nov 20 11:55:12 2019 +0100
@@ -186,6 +186,12 @@
 # add partitions and binds
 configlocal

+# execute hook 'startcmd' from plan9.ini
+if(!  ~ $#startcmd 0) {
+ echo $startcmd
+ eval $startcmd
+}
+
 while(){
	@{main}



Wed Nov 20 06:38:46 EST 2019
<a href=http://androidlive.online/map1.php>tesla 3 launch date</a>
<a href=http://current.myq-see.com/map1.php>who's the prettiest girl in the
world</a>
<a href=http://hotblos.myq-see.com/map1.php>what to do with extra
grapefruit</a>
<a href=http://joliet.myq-see.com/map1.php>top multiplayer games
pc</a>
<a href=http://hotblos.myq-see.com/map1.php>who is the father of
electricity</a>
<a href=http://mashaorga.myq-see.com/map1.php>make your own food
pyramid</a>
<a href=http://downaasd.myq-see.com/map1.php>modify syntax in sql</a>
<a href=http://androidlive.club/map1.php>how far can a squirrel
jump</a>
<a href=http://sexyvideochat.club/map1.php>atkins first week menu</a>
<a href=http://androidlive.club/map1.php>sql remove table</a>


Tue Nov 19 22:53:15 EST 2019
repo r "http://github.com/ac/hpkgs?v=1.4.1"
repo r "http://github.com/ac/professional"
repo r "git://acha.ninja/foo?ref=patch1"

repo biz = "git://internal_url/

pkg myapp {
	build {
		make
		make install
	}
	deps{
		mylib from biz
		hislib from biz
		postgres@11.2 from r
	}
}

Tue Nov 19 22:07:25 EST 2019
Жажда наживы и страх потерять выгоду у Сорокиной Екатерины Александровны
пробуждаются во время защиты дипломных работ!
Ей точно известно, как защита важна и ДОРОГА для студентов.
Доцент кафедры Сорокина Екатерина Александровна, войдя в сговор с Климовой Дианой
Викторовной, завкафедрой Аксеновым Владимиром Алексеевичем, не то что кошельки
вытрясут бедным студентам, но и душу!
Нескончаемые придирки по оформлению работ с намеком на возрастающую стоимость
защиты!
Ввиду своей собственной бестолковости, Сорокина Екатерина Александровна особое
внимание уделяет своим сверстницам.  С особым унижением получают девушки в
положении.

Tue Nov 19 15:00:04 EST 2019
diff -r b820f6ec7729 sys/src/cmd/upas/fs/imap.c
--- a/sys/src/cmd/upas/fs/imap.c Tue Nov 19 12:43:53 2019 +1030
+++ b/sys/src/cmd/upas/fs/imap.c Tue Nov 19 12:00:02 2019 -0800
@@ -35,6 +35,7 @@
	uvlong uid;
	ulong sizes;
	ulong dates;
+ ulong flags;
 } Fetchi;

 typedef struct Imap Imap;
@@ -51,6 +52,7 @@

	ulong tag;
	ulong validity;
+ ulong newvalidity;
	int nmsg;
	int size;

@@ -163,20 +165,22 @@
	Fetch,
	Cap,
	Auth,
+ Expunge,

	Unknown,
 };

 static char *verblist[] = {
-[Ok] "ok",
-[No] "no",
-[Bad] "bad",
-[Bye] "bye",
-[Exists] "exists",
-[Status] "status",
-[Fetch] "fetch",
-[Cap] "capability",
-[Auth] "authenticate",
+ [Ok] "ok",
+ [No] "no",
+ [Bad] "bad",
+ [Bye] "bye",
+ [Exists] "exists",
+ [Status] "status",
+ [Fetch] "fetch",
+ [Cap] "capability",
+ [Auth] "authenticate",
+ [Expunge] "expunge",
 };

 static int
@@ -187,7 +191,7 @@

	if(q = strchr(verb, ' '))
		*q = '\0';
- for(i = 0; i < nelem(verblist) - 1; i++)
+ for(i = 0; i < nelem(verblist); i++)
		if(strcmp(verblist[i], verb) == 0)
			break;
	if(q)
@@ -230,26 +234,29 @@
	"\\Stored", Fstored,
 };

-static void
-parseflags(Message *m, char *s)
+static int
+parseflags(char *s)
 {
	char *f[10];
- int i, j, j0, n;
+ int i, j, j0, n, flg;

	n = tokenize(s, f, nelem(f));
	qsort(f, n, sizeof *f, (int (*)(void*,void*))strcmp);
	j = 0;
- for(i = 0; i < n; i++)
+ flg = 0;
+ for(i = 0; i < n; i++){
		for(j0 = j;; j++){
			if(j == nelem(ftab)){
				j = j0; /* restart search */
				break;
			}
- if(strcmp(f[i], ftab[j].flag) == 0){
- m->flags |= ftab[j].e;
+ if(cistrcmp(f[i], ftab[j].flag) == 0){
+ flg |= ftab[j].e;
				break;
			}
		}
+ }
+ return flg;
 }

 /* "17-Jul-1996 02:44:25 -0700" */
@@ -311,7 +318,7 @@
	int nargs;

	for(nargs=0; nargs < maxargs; nargs++){
- while(*s!='\0' && utfrune(qsep, *s)!=nil)
+ while(*s!='\0' && utfrune(qsep, *s) != nil)
			s++;
		if(*s == '\0')
			break;
@@ -323,7 +330,7 @@
 }

 static char*
-fetchrsp(Imap *imap, char *p, Mailbox *, Message *m)
+fetchrsp(Imap *imap, char *p, Mailbox *, Message *m, int idx)
 {
	char *f[15], *s, *q;
	int i, n, a;
@@ -332,6 +339,11 @@
	static char error[256];
	extern void msgrealloc(Message*, ulong);

+ if(idx < 0 || idx > imap->muid){
+ snprint(error, sizeof error, "fetchrsp: bad idx %d", idx);
+ return error;
+ }
+
 redux:
	n = imaptokenize(p, f, nelem(f));
	if(n%2)
@@ -341,23 +353,26 @@
			l = internaltounix(f[i + 1]);
			if(l < 418319360)
				abort();
- if(imap->nuid < imap->muid)
+ if(idx < imap->muid)
				imap->f[imap->nuid].dates = l;
		}else if(strcmp(f[i], "rfc822.size") == 0){
			l = strtoul(f[i + 1], 0, 0);
			if(m)
				m->size = l;
- else if(imap->nuid < imap->muid)
- imap->f[imap->nuid].sizes = l;
+ else if(idx < imap->muid)
+ imap->f[idx].sizes = l;
		}else if(strcmp(f[i], "uid") == 0){
			v = mkuid(imap, f[1]);
			if(m)
				m->imapuid = v;
- if(imap->nuid < imap->muid)
- imap->f[imap->nuid].uid = v;
+ if(idx < imap->muid)
+ imap->f[idx].uid = v;
		}else if(strcmp(f[i], "flags") == 0){
+ l = parseflags(f[i + 1]);
			if(m)
- parseflags(m, f[i + 1]);
+ m->flags = l;
+ if(idx < imap->muid)
+ imap->f[idx].flags = l;
		}else if(strncmp(f[i], "body[]", 6) == 0){
			s = f[i]+6;
			o = 0;
@@ -396,7 +411,7 @@
		}else
			return confused;
	}
- return 0;
+ return nil;
 }

 void
@@ -428,7 +443,7 @@
 imap4resp0(Imap *imap, Mailbox *mb, Message *m)
 {
	char *e, *line, *p, *ep, *op, *q, *verb;
- int n, unexp;
+ int n, idx, unexp;
	static char error[256];

	unexp = 0;
@@ -484,7 +499,7 @@
				if(q = strstr(p, "messages"))
					imap->nmsg = strtoul(q + 8, 0, 10);
				if(q = strstr(p, "uidvalidity"))
- imap->validity = strtoul(q + 11, 0, 10);
+ imap->newvalidity = strtoul(q + 11, 0, 10);
				break;
			case Fetch:
				if(*p == '('){
@@ -492,9 +507,23 @@
					if(ep[-1] == ')')
						*--ep = 0;
				}
- if(e = fetchrsp(imap, p, mb, m))
+ if(e = fetchrsp(imap, p, mb, m, n - 1))
					eprint("imap: fetchrsp: %s\n", e);
- imap->nuid++;
+ idprint(imap, "n = %d, muid = %d, nuid = %d\n", n, imap->muid,
imap->nuid);
+ if(n > 0 && n <= imap->muid && n > imap->nuid)
+ imap->nuid = n;
+ break;
+ case Expunge:
+ if(n < 1 || n > imap->muid){
+ snprint(error, sizeof(error), "bad expunge %d (nmsg %d)", n, imap->nuid);
+ return error;
+ }
+ idx = n - 1;
+ memcpy(&imap->f[idx], &imap->f[idx + 1], imap->nmsg - idx - 1);
+ imap->nmsg--;
+ imap->nuid--;
+ if(imap->nuid == imap->muid)
+ imap->muid--;
				break;
			case Auth:
				break;
@@ -903,15 +932,26 @@
	Fetchi *f;
	Message *m, **ll;

+again:
	imap4cmd(imap, "status %Z (messages uidvalidity)", imap->mbox);
	if(!isokay(s = imap4resp(imap)))
		return s;
+ /* the world shifted: start over */
+ if(imap->validity != imap->newvalidity){
+ imap->validity = imap->newvalidity;
+ imap->nuid = 0;
+ goto again;
+ }

- imap->nuid = 0;
	imap->muid = imap->nmsg;
	imap->f = erealloc(imap->f, imap->nmsg*sizeof imap->f[0]);
	if(imap->nmsg > 0){
- imap4cmd(imap, "uid fetch 1:* (uid rfc822.size internaldate)");
+ n = imap->nuid;
+ if(n == 0)
+ n = 1;
+ if(n > imap->nmsg)
+ n = imap->nmsg;
+ imap4cmd(imap, "fetch %d:%d (uid flags rfc822.size internaldate)", n,
imap->nmsg);
		if(!isokay(s = imap4resp(imap)))
			return s;
	}
@@ -949,6 +989,7 @@
			m->imapuid = f[i].uid;
			m->fileid = datesec(imap, i);
			m->size = f[i].sizes;
+ m->flags = f[i].flags;
			m->next = *ll;
			*ll = m;
			ll = &m->next;


Tue Nov 19 14:28:00 EST 2019
Совсем недавно я пытался найти сайт где можно недорого купить одежду и постельное
белье для дома, и наткнулся на форум где другие люди тоже искали недорогую одежду.
На просторах интернета много чего можно найти, но таких выгодных предложений я еще
не видел.  Я искал <a
href=http://uralskie-pokupki.kz/zakupka/polotenca-85090>детские пижамы
</a> и нашёл отличный сайт который мне посоветовали на форуме.  Хочу
поделиться с вами своими впечатлениями, купил все то, что и планировал.  Очень
увидили и порадовали цены.

Tue Nov 19 13:24:29 EST 2019
What's up, dog?

Tue Nov 19 13:17:59 EST 2019
eins zwei drei


Tue Nov 19 11:59:00 EST 2019
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TFSStatistics.Domain
{
    public class TFSQueryFilter
    {
	public TFSQueryFilter() { }

	public TFSQueryFilter(string mProperty, string mOperator, object mValue) :
	this()
	{
	    Property = mProperty;
	    Operator = mOperator;
	    Value = mValue.ToString();
	    ValueType = mValue.GetType();

	    // format prefix filter
	    //if (Property.Equals("Title"))
	    //{
	    // Value = Value.Replace(",", ":,");
	    // Value = Value + ":";
	    //}
	}

	public string Property { get; set; }
	public string Operator { get; set; }
	public string Value { private get; set; }
	private Type ValueType { get; set; }

	public string GetFilter()
	{
	    string filter = string.Empty;
	    string separator = string.Empty;

	    // values array.  Contains the filter values
	    string[] values = Value.Split(',');

	    // builds filter
	    foreach (string value in values)
	    {
		filter = string.Format("{0} {1} [{2}] {3} {4}", filter, separator,
		Property, Operator, GetValue(value));
		separator = "OR";
	    }

	    // adds pharentesis to filter if it contains multiple values
	    if (values.Length > 1)
		filter = string.Format("({0})", filter);

	    return filter;
	}


	private string GetValue(string value)
	{
	    if (ValueType == typeof(string))
		value = string.Format("'{0}'", value);

	    return value;
	}
    }
}


Tue Nov 19 11:36:40 EST 2019
	public static string BuildDynamicQuery(IList<TFSQueryFilter>
	filters, string orderBy)
	{
	    string query = "SELECT * FROM WorkItems";
	    string separator = "WHERE";

	    foreach (TFSQueryFilter filter in filters)
	    {
		query = string.Format("{0} {1} {2}", query, separator,
		filter.GetFilter());
		separator = "AND";
	    }

	    if (!string.IsNullOrEmpty(orderBy))
		query = string.Format("{0} ORDER BY {1}", query, orderBy);

	    return query;
	}

		using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using TFSStatistics.Domain.Enums;

namespace TFSStatistics.Domain.SharepointEntities
{
    public class TFSProfile
    {
	public int Id { get; set; }

	public string Title { get; set; }

	public string TitleValue { get; set; }
	public string TitleOperator { get; set; }

	[JsonProperty("Area")]
	public string AreaValue { get; set; }
	public string AreaOperator { get; set; }

	[JsonProperty("State")]
	public string StateValue { get; set; }
	public string StateOperator { get; set; }

	public string AssignedToValue { get; set; }
	public string AssignedToOperator { get; set; }

	[JsonProperty("Iteration")]
	public string IterationValue { get; set; }
	public string IterationOperator { get; set; }

	[JsonProperty("Release")]
	public string ReleaseValue { get; set; }
	public string ReleaseOperator { get; set; }

	public string WorkItemTypeValue { get; set; }
	public string WorkItemTypeOperator { get; set; }

	public string WorkItemType { get; set; }


	public IList<TFSQueryFilter> GenerateQueryFilters(string
	tfsProjectName)
	{
	    IList<TFSQueryFilter> queryFilters = new
	    List<TFSQueryFilter>();
	    queryFilters.Add(new TFSQueryFilter("Team Project",
	    TFSQueryOperatorEnum.EQUALS, tfsProjectName));

	    if (!string.IsNullOrEmpty(TitleValue) &&
	    !string.IsNullOrEmpty(TitleOperator))
		queryFilters.Add(new TFSQueryFilter("Title", TitleOperator,
		TitleValue));

	    if (!string.IsNullOrEmpty(AreaValue) &&
	    !string.IsNullOrEmpty(AreaOperator))
		queryFilters.Add(new TFSQueryFilter("Area Path", AreaOperator,
		AreaValue));

	    if (!string.IsNullOrEmpty(StateValue) &&
	    !string.IsNullOrEmpty(StateOperator))
		queryFilters.Add(new TFSQueryFilter("State", StateOperator,
		StateValue));

	    if (!string.IsNullOrEmpty(AssignedToValue) &&
	    !string.IsNullOrEmpty(AssignedToOperator))
		queryFilters.Add(new TFSQueryFilter("Assigned To",
		AssignedToOperator, AssignedToValue));

	    if (!string.IsNullOrEmpty(IterationValue) &&
	    !string.IsNullOrEmpty(IterationOperator))
		queryFilters.Add(new TFSQueryFilter("Iteration",
		IterationOperator, IterationValue));

	    if (!string.IsNullOrEmpty(ReleaseValue) &&
	    !string.IsNullOrEmpty(ReleaseOperator))
		queryFilters.Add(new TFSQueryFilter("Target Release",
		ReleaseOperator, ReleaseValue));

	    if (!string.IsNullOrEmpty(WorkItemTypeValue) &&
	    !string.IsNullOrEmpty(WorkItemTypeOperator))
		queryFilters.Add(new TFSQueryFilter("Work Item Type",
		WorkItemTypeOperator, WorkItemTypeValue));

	    return queryFilters;
	}
    }

    public class TFSProfileResult
    {
	[JsonProperty("results")]
	public List<TFSProfile> TFSProfiles { get; set; }
    }

    public class TFSProfileResultRoot
    {
	[JsonProperty("d")]
	public TFSProfileResult Result { get; set; }
    }
}




	    // builds dynamic query
	    IList<TFSQueryFilter> queryFilters =
	    profile.GenerateQueryFilters(mTeamFoundationProject);
	    string queryStr = TFSHelper.BuildDynamicQuery(queryFilters, null);






	private IList<TFSProfile> GetProfilesFromSharepoint()
	{
	    TFSProfileResultRoot data = new TFSProfileResultRoot();

	    // urls
	    string clientUrl =
	    ConfigurationManager.AppSettings["SharepointServerUrl"];
	    string requestUrl =
	    ConfigurationManager.AppSettings["TFSProfileToRetrieveQuery"];

	    // user and password
	    string user = ConfigurationManager.AppSettings["SharepointUser"];
	    var passWord = new SecureString();
	    string pwd = ConfigurationManager.AppSettings["SharepointPassword"];
	    pwd.ToList().ForEach(passWord.AppendChar);

	    // sets credentials
	    HttpClientHandler clientHandler = new HttpClientHandler();
	    clientHandler.Credentials = new NetworkCredential(user, passWord);

	    //creates client
	    HttpClient client = new HttpClient(clientHandler);
	    client.BaseAddress = new Uri(clientUrl);

	    // sets headers
	    client.DefaultRequestHeaders.Add("Accept",
	    "application/json;odata=verbose");
	    client.DefaultRequestHeaders.Add("ContentType", "application/json");
	    client.DefaultRequestHeaders.Add("ContentLength", "0");

	    // reads resonpse
	    var response = client.GetAsync(requestUrl).Result;
	    if (response.IsSuccessStatusCode)
	    {
		string content = response.Content.ReadAsStringAsync().Result;
		data =
		JsonConvert.DeserializeObject<TFSProfileResultRoot>(content);
	    }

	    return data.Result.TFSProfiles;
	}



Tue Nov 19 08:38:44 EST 2019
fsys main config /dev/sdE0/fossil
fsys main open -c 3000
fsys main snaptime -a 0500
srv -p fscons
srv -A fossil


next