anchor.diff:  	if(holder)
   		src.holder.output_ai_laws()
   
  +/client/proc/readmin()
  +	set name = "Re-admin self"
  +	set category = "Admin"
  +	set desc = "Regain your admin powers."
  +	var/list/rank_names = list()
  +	for(var/datum/admin_rank/R in admin_ranks)
  +		rank_names[R.name] = R
  +	var/datum/admins/D = admin_datums[ckey]
  +	var/rank = null
  +	if(config.admin_legacy_system)
  +		//load text from file
  +		var/list/Lines = file2list("config/admins.txt")
  +		for(var/line in Lines)
  +			var/list/splitline = text2list(line, " = ")
  +			if(splitline[1] == ckey)
  +				if(splitline.len >= 2)
  +					rank = ckeyEx(splitline[2])
  +				break
  +			continue
  +	else
  +		if(!dbcon.IsConnected())
  +			message_admins("Warning, mysql database is not connected.")
  +			return
  +		var/DBQuery/query = dbcon.NewQuery("SELECT ckey, rank FROM [format_table_name("admin")] WHERE ckey = '[ckey]'")
  +		query.Execute()
  +		while(query.NextRow())
  +			rank = ckeyEx(query.item[2])
  +	verbs -= /client/proc/readmin
  +	if(!rank)
  +		return
  +	if(!D)
  +		if(rank_names[rank] == null)
  +			error("Admin rank ([rank]) does not exist.")
  +			return
  +		D = new(rank_names[rank],ckey)
  +		var/client/C = directory[ckey]
  +		D.associate(C)
  +		message_admins("[src] re-adminned.")
  +		log_admin("[src] re-adminned.")
  +		feedback_add_details("admin_verb","RAS")
  +		return
  +	else
  +		src << "You are already an admin."
  +		return
  
positive.code: 	set category = "Admin"
  
  	if(holder)
  		if(alert("Confirm self-deadmin for the round? You can't re-admin yourself without someont promoting you.",,"Yes","No") == "Yes")
  			log_admin("[src] deadmined themself.")
  			message_admins("[src] deadmined themself.")
  			deadmin()
  			src << "<span class='interface'>You are now a normal player.</span>"
  	feedback_add_details("admin_verb","DAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  
  /client/proc/toggle_log_hrefs()
  
negative.code: 		/client/proc/startSinglo,
  		/client/proc/ticklag,
  		/client/proc/cmd_admin_grantfullaccess,
  		/client/proc/cmd_admin_areatest,
  		/client/proc/readmin
  		)
  	if(holder)
  		verbs.Remove(holder.rank.adds)
  