anchor.diff:  					String iconUrl = subSlots[ssi]['item']['iconUrl'];
   					int qty = subSlots[ssi]['count'];
   					bool contains = _contained(query, itemName);
  -					int dist = levenshtein(itemName, query);
  -					matches.add(new InventorySearchMatch(
  -						name: itemName,
  -						iconUrl: iconUrl,
  -						qty: qty,
  -						slot: si,
  -						subSlot: ssi,
  -						relevance: (contains ? 0 : dist)
  -					));
  +					if (contains) {
  +						int dist = levenshtein(itemName, query);
  +						matches.add(new InventorySearchMatch(
  +							name: itemName,
  +							iconUrl: iconUrl,
  +							qty: qty,
  +							slot: si,
  +							subSlot: ssi,
  +							relevance: (contains ? 0 : dist)
  +							));
  +					}
   				}
   			} else {
   				bool contains = _contained(slot.item.name, query);
  
positive.code: 		}
  
  		matches.sort((InventorySearchMatch a, InventorySearchMatch b) {
  			return (a.relevance - b.relevance);
  		});
  
  		return (matches.length > 5 ? matches.sublist(0, 5) : matches);
  
negative.code: 	InventorySearchWindow() {
  		prepare();
  
  		setupUiButton(querySelector('#inventorySearch'));
  		document.onKeyDown.listen((KeyboardEvent k) {
  			if(inputManager == null || ignoreShortcuts)
  				return;
  
  			//if F3 is pressed or ctrl+f is pressed
  			if (k.keyCode == 114 || (k.ctrlKey && k.keyCode == 70)) {
  				k.preventDefault();
  				if(displayElement.hidden) {
  					open();
  				}
  			}
  		});
  
  		input = displayElement.querySelector('#invSearchInput');
  		output = displayElement.querySelector('#invSearchOutput');
  
  		input
  			..onInput.listen((_) => _update())
  			..onClick.listen((_) => input.value = '');
  	}
  
  	@override
  	void open({bool ignoreKeys: false}) {
  		_update();
  		super.open(ignoreKeys: ignoreKeys);
  		input.focus();
  	}
  
  	void _update() {
  