if(input.expectedRevision!==rules.personal.revision||input.policyVersion!==policy.version)throwError('Bookmarks changed. Refresh before editing.');
if(!rules[{add:'allowUserAdd',update:'allowUserEdit',delete:'allowUserDelete'}[input.action]])throwError('Bookmark changes are controlled by your administrator');
if(typeofid!=='string'||!/^[A-Za-z0-9_-]{1,80}$/.test(id)||rules.managed.some(item=>item.id===id))throwError('Company bookmarks cannot be changed');
if(input.action==='add'&&rules.personal.items.some(item=>item.id===id)||input.action!=='add'&&!rules.personal.items.some(item=>item.id===id))throwError('Bookmark identity is unavailable');
if(!['https:','http:'].includes(url.protocol)||url.username||url.password||url.search||url.hash||!destinationAllowed(url.href,policy))throwError('Bookmark destination is not approved');