@Override
	public void run() {
		if (options.useBOB.get() && !options.usedBOB.get() && ctx.summoning.summoned() && options.beastOfBurden.bobSpace() > 0) {
			options.status = "Taking items from BoB";
			script.log.info(options.status);

			final int inventoryCount = ctx.backpack.select().count();

			if (ctx.summoning.select(Summoning.Option.TAKE_BOB)) {
				Condition.wait(new Callable<Boolean>() {
					@Override
					public Boolean call() throws Exception {
						return options.usedBOB.get() || ctx.backpack.select().count() > inventoryCount;
					}
				}, Random.nextInt(300, 600), 5);
				Condition.sleep(333);
			}
		} else if (getBackpackOffering().isEmpty()) {
			options.status = ("Out of bones banking");
			script.log.info(options.status);
			script.bankingTask.setBanking();
		}
	}