diff -Nru firefox-49.0~b6+build1/browser/app/profile/firefox.js firefox-49.0~b7+build1/browser/app/profile/firefox.js --- firefox-49.0~b6+build1/browser/app/profile/firefox.js 2016-08-23 06:51:05.000000000 +0000 +++ firefox-49.0~b7+build1/browser/app/profile/firefox.js 2016-08-26 05:53:10.000000000 +0000 @@ -1429,6 +1429,12 @@ pref("browser.laterrun.enabled", false); +pref("browser.migrate.automigrate.enabled", false); +// 4 here means the suggestion notification will be automatically +// hidden the 4th day, so it will actually be shown on 3 different days. +pref("browser.migrate.automigrate.daysToOfferUndo", 4); +pref("browser.migrate.automigrate.ui.enabled", true); + // Enable browser frames for use on desktop. Only exposed to chrome callers. pref("dom.mozBrowserFramesEnabled", true); diff -Nru firefox-49.0~b6+build1/browser/base/content/browser.css firefox-49.0~b7+build1/browser/base/content/browser.css --- firefox-49.0~b6+build1/browser/base/content/browser.css 2016-08-23 06:51:05.000000000 +0000 +++ firefox-49.0~b7+build1/browser/base/content/browser.css 2016-08-26 05:53:10.000000000 +0000 @@ -266,6 +266,17 @@ .titlebar-placeholder[type="fullscreen-button"]:-moz-locale-dir(rtl) { -moz-box-ordinal-group: 0; } + +/* In private windows, the #titlebar-content is higher because of the + * private browsing indicator. With the margin-top the titlebar buttons + * align to the top correctly in that case, but only if we don't stretch + * the box they're in because the container is too high, so we override + * the default alignment value (stretch). + */ +#main-window[tabsintitlebar] > #titlebar > #titlebar-content > #titlebar-buttonbox-container { + -moz-box-align: start; +} + %else /* On non-OSX, these should be start-aligned */ #titlebar-buttonbox-container { diff -Nru firefox-49.0~b6+build1/browser/base/content/tab-content.js firefox-49.0~b7+build1/browser/base/content/tab-content.js --- firefox-49.0~b6+build1/browser/base/content/tab-content.js 2016-08-23 06:51:05.000000000 +0000 +++ firefox-49.0~b7+build1/browser/base/content/tab-content.js 2016-08-26 05:53:10.000000000 +0000 @@ -148,6 +148,7 @@ addEventListener("click", this, true); addEventListener("pagehide", this, true); + sendAsyncMessage("AboutHome:MaybeShowAutoMigrationUndoNotification"); sendAsyncMessage("AboutHome:RequestUpdate"); }, diff -Nru firefox-49.0~b6+build1/browser/components/extensions/ext-commands.js firefox-49.0~b7+build1/browser/components/extensions/ext-commands.js --- firefox-49.0~b6+build1/browser/components/extensions/ext-commands.js 2016-08-23 06:51:05.000000000 +0000 +++ firefox-49.0~b7+build1/browser/components/extensions/ext-commands.js 2016-08-26 05:53:10.000000000 +0000 @@ -75,10 +75,12 @@ for (let name of Object.keys(manifest.commands)) { let command = manifest.commands[name]; let shortcut = command.suggested_key[os] || command.suggested_key.default; - commands.set(name, { - description: command.description, - shortcut: shortcut.replace(/\s+/g, ""), - }); + if (shortcut) { + commands.set(name, { + description: command.description, + shortcut: shortcut.replace(/\s+/g, ""), + }); + } } return commands; }, diff -Nru firefox-49.0~b6+build1/browser/components/extensions/test/browser/browser_ext_pageAction_context.js firefox-49.0~b7+build1/browser/components/extensions/test/browser/browser_ext_pageAction_context.js --- firefox-49.0~b6+build1/browser/components/extensions/test/browser/browser_ext_pageAction_context.js 2016-08-23 06:51:05.000000000 +0000 +++ firefox-49.0~b7+build1/browser/components/extensions/test/browser/browser_ext_pageAction_context.js 2016-08-26 05:53:10.000000000 +0000 @@ -131,12 +131,16 @@ }); }); + yield SpecialPowers.pushPrefEnv({set: [["general.useragent.locale", "es-ES"]]}); + yield extension.startup(); yield awaitFinish; yield extension.unload(); + yield SpecialPowers.popPrefEnv(); + let node = document.getElementById(pageActionId); is(node, null, "pageAction image removed from document"); @@ -177,22 +181,33 @@ "description": "Title", }, }, + "_locales/es_ES/messages.json": { + "popup": { + "message": "default.html", + "description": "Popup", + }, + + "title": { + "message": "T\u00edtulo", + "description": "Title", + }, + }, }, getTests(tabs) { let details = [ {"icon": browser.runtime.getURL("default.png"), "popup": browser.runtime.getURL("default.html"), - "title": "Default Title \u263a"}, + "title": "Default T\u00edtulo \u263a"}, {"icon": browser.runtime.getURL("1.png"), "popup": browser.runtime.getURL("default.html"), - "title": "Default Title \u263a"}, + "title": "Default T\u00edtulo \u263a"}, {"icon": browser.runtime.getURL("2.png"), "popup": browser.runtime.getURL("2.html"), "title": "Title 2"}, {"icon": browser.runtime.getURL("2.png"), "popup": browser.runtime.getURL("2.html"), - "title": "Default Title \u263a"}, + "title": "Default T\u00edtulo \u263a"}, ]; let promiseTabLoad = details => { diff -Nru firefox-49.0~b6+build1/browser/components/extensions/test/browser/browser_ext_tabs_executeScript_runAt.js firefox-49.0~b7+build1/browser/components/extensions/test/browser/browser_ext_tabs_executeScript_runAt.js --- firefox-49.0~b6+build1/browser/components/extensions/test/browser/browser_ext_tabs_executeScript_runAt.js 2016-08-23 06:51:05.000000000 +0000 +++ firefox-49.0~b7+build1/browser/components/extensions/test/browser/browser_ext_tabs_executeScript_runAt.js 2016-08-26 05:53:10.000000000 +0000 @@ -31,9 +31,11 @@ return Promise.reject(new Error("Max tries exceeded")); } + let url = `${URL}?r=${Math.random()}`; + let loadingPromise = new Promise(resolve => { browser.tabs.onUpdated.addListener(function listener(tabId, changed, tab_) { - if (tabId == tab.id && changed.status == "loading" && tab_.url == URL) { + if (tabId == tab.id && changed.status == "loading" && tab_.url == url) { browser.tabs.onUpdated.removeListener(listener); resolve(); } @@ -42,7 +44,7 @@ // TODO: Test allFrames and frameId. - return browser.tabs.update({url: URL}).then(() => { + return browser.tabs.update({url}).then(() => { return loadingPromise; }).then(() => { return Promise.all([ diff -Nru firefox-49.0~b6+build1/browser/components/migration/AutoMigrate.jsm firefox-49.0~b7+build1/browser/components/migration/AutoMigrate.jsm --- firefox-49.0~b6+build1/browser/components/migration/AutoMigrate.jsm 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/browser/components/migration/AutoMigrate.jsm 2016-08-26 05:53:10.000000000 +0000 @@ -0,0 +1,391 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +this.EXPORTED_SYMBOLS = ["AutoMigrate"]; + +const { classes: Cc, interfaces: Ci, results: Cr, utils: Cu } = Components; + +const kAutoMigrateEnabledPref = "browser.migrate.automigrate.enabled"; +const kUndoUIEnabledPref = "browser.migrate.automigrate.ui.enabled"; + +const kAutoMigrateStartedPref = "browser.migrate.automigrate.started"; +const kAutoMigrateFinishedPref = "browser.migrate.automigrate.finished"; +const kAutoMigrateBrowserPref = "browser.migrate.automigrate.browser"; + +const kAutoMigrateLastUndoPromptDateMsPref = "browser.migrate.automigrate.lastUndoPromptDateMs"; +const kAutoMigrateDaysToOfferUndoPref = "browser.migrate.automigrate.daysToOfferUndo"; + +const kPasswordManagerTopic = "passwordmgr-storage-changed"; +const kPasswordManagerTopicTypes = new Set([ + "addLogin", + "modifyLogin", +]); + +const kSyncTopic = "fxaccounts:onlogin"; + +const kNotificationId = "abouthome-automigration-undo"; + +Cu.import("resource:///modules/MigrationUtils.jsm"); +Cu.import("resource://gre/modules/Preferences.jsm"); +Cu.import("resource://gre/modules/PlacesUtils.jsm"); +Cu.import("resource://gre/modules/Services.jsm"); +Cu.import("resource://gre/modules/Task.jsm"); +Cu.import("resource://gre/modules/XPCOMUtils.jsm"); + +let gAutoMigrationBundle; + +function getBundle() { + if (!gAutoMigrationBundle) { + gAutoMigrationBundle = Services.strings.createBundle( + "chrome://browser/content/migration/automigration.properties"); + } + return gAutoMigrationBundle; +} + +const AutoMigrate = { + get resourceTypesToUse() { + let {BOOKMARKS, HISTORY, PASSWORDS} = Ci.nsIBrowserProfileMigrator; + return BOOKMARKS | HISTORY | PASSWORDS; + }, + + init() { + this.enabled = Preferences.get(kAutoMigrateEnabledPref, false) && + Cc["@mozilla.org/chrome/chrome-registry;1"]. + getService(Ci.nsIXULChromeRegistry). + getSelectedLocale("browser") == "en-US"; + if (this.enabled) { + this.maybeInitUndoObserver(); + } + }, + + maybeInitUndoObserver() { + if (!this.canUndo()) { + return; + } + // Now register places, password and sync observers: + this.onItemAdded = this.onItemMoved = this.onItemChanged = + this.removeUndoOption.bind(this, this.UNDO_REMOVED_REASON_BOOKMARK_CHANGE); + PlacesUtils.addLazyBookmarkObserver(this, true); + for (let topic of [kSyncTopic, kPasswordManagerTopic]) { + Services.obs.addObserver(this, topic, true); + } + }, + + observe(subject, topic, data) { + if (topic == kPasswordManagerTopic) { + // As soon as any login gets added or modified, disable undo: + // (Note that this ignores logins being removed as that doesn't + // impair the 'undo' functionality of the import.) + if (kPasswordManagerTopicTypes.has(data)) { + this.removeUndoOption(this.UNDO_REMOVED_REASON_PASSWORD_CHANGE); + } + } else if (topic == kSyncTopic) { + this.removeUndoOption(this.UNDO_REMOVED_REASON_SYNC_SIGNIN); + } + }, + + /** + * Automatically pick a migrator and resources to migrate, + * then migrate those and start up. + * + * @throws if automatically deciding on migrators/data + * failed for some reason. + */ + migrate(profileStartup, migratorKey, profileToMigrate) { + let histogram = Services.telemetry.getHistogramById( + "FX_STARTUP_MIGRATION_AUTOMATED_IMPORT_PROCESS_SUCCESS"); + histogram.add(0); + let {migrator, pickedKey} = this.pickMigrator(migratorKey); + histogram.add(5); + + profileToMigrate = this.pickProfile(migrator, profileToMigrate); + histogram.add(10); + + let resourceTypes = migrator.getMigrateData(profileToMigrate, profileStartup); + if (!(resourceTypes & this.resourceTypesToUse)) { + throw new Error("No usable resources were found for the selected browser!"); + } + histogram.add(15); + + let sawErrors = false; + let migrationObserver = (subject, topic, data) => { + if (topic == "Migration:ItemError") { + sawErrors = true; + } else if (topic == "Migration:Ended") { + histogram.add(25); + if (sawErrors) { + histogram.add(26); + } + Services.obs.removeObserver(migrationObserver, "Migration:Ended"); + Services.obs.removeObserver(migrationObserver, "Migration:ItemError"); + Services.prefs.setCharPref(kAutoMigrateStartedPref, startTime.toString()); + Services.prefs.setCharPref(kAutoMigrateFinishedPref, Date.now().toString()); + Services.prefs.setCharPref(kAutoMigrateBrowserPref, pickedKey); + // Need to manually start listening to new bookmarks/logins being created, + // because, when we were initialized, there wasn't the possibility to + // 'undo' anything. + this.maybeInitUndoObserver(); + } + }; + + Services.obs.addObserver(migrationObserver, "Migration:Ended", false); + Services.obs.addObserver(migrationObserver, "Migration:ItemError", false); + // We'll save this when the migration has finished, at which point the pref + // service will be available. + let startTime = Date.now(); + migrator.migrate(this.resourceTypesToUse, profileStartup, profileToMigrate); + histogram.add(20); + }, + + /** + * Pick and return a migrator to use for automatically migrating. + * + * @param {String} migratorKey optional, a migrator key to prefer/pick. + * @returns {Object} an object with the migrator to use for migrating, as + * well as the key we eventually ended up using to obtain it. + */ + pickMigrator(migratorKey) { + if (!migratorKey) { + let defaultKey = MigrationUtils.getMigratorKeyForDefaultBrowser(); + if (!defaultKey) { + throw new Error("Could not determine default browser key to migrate from"); + } + migratorKey = defaultKey; + } + if (migratorKey == "firefox") { + throw new Error("Can't automatically migrate from Firefox."); + } + + let migrator = MigrationUtils.getMigrator(migratorKey); + if (!migrator) { + throw new Error("Migrator specified or a default was found, but the migrator object is not available."); + } + return {migrator, pickedKey: migratorKey}; + }, + + /** + * Pick a source profile (from the original browser) to use. + * + * @param {Migrator} migrator the migrator object to use + * @param {String} suggestedId the id of the profile to migrate, if pre-specified, or null + * @returns the profile to migrate, or null if migrating + * from the default profile. + */ + pickProfile(migrator, suggestedId) { + let profiles = migrator.sourceProfiles; + if (profiles && !profiles.length) { + throw new Error("No profile data found to migrate."); + } + if (suggestedId) { + if (!profiles) { + throw new Error("Profile specified but only a default profile found."); + } + let suggestedProfile = profiles.find(profile => profile.id == suggestedId); + if (!suggestedProfile) { + throw new Error("Profile specified was not found."); + } + return suggestedProfile; + } + if (profiles && profiles.length > 1) { + throw new Error("Don't know how to pick a profile when more than 1 profile is present."); + } + return profiles ? profiles[0] : null; + }, + + getUndoRange() { + let start, finish; + try { + start = parseInt(Preferences.get(kAutoMigrateStartedPref, "0"), 10); + finish = parseInt(Preferences.get(kAutoMigrateFinishedPref, "0"), 10); + } catch (ex) { + Cu.reportError(ex); + } + if (!finish || !start) { + return null; + } + return [new Date(start), new Date(finish)]; + }, + + canUndo() { + return !!this.getUndoRange(); + }, + + undo: Task.async(function* () { + let histogram = Services.telemetry.getHistogramById("FX_STARTUP_MIGRATION_AUTOMATED_IMPORT_UNDO"); + histogram.add(0); + if (!this.canUndo()) { + histogram.add(5); + throw new Error("Can't undo!"); + } + + histogram.add(10); + + yield PlacesUtils.bookmarks.eraseEverything(); + histogram.add(15); + + // NB: we drop the start time of the migration for now. This is because + // imported history will always end up being 'backdated' to the actual + // visit time recorded by the browser from which we imported. As a result, + // a lower bound on this item doesn't really make sense. + // Note that for form data this could be different, but we currently don't + // support form data import from any non-Firefox browser, so it isn't + // imported from other browsers by the automigration code, nor do we + // remove it here. + let range = this.getUndoRange(); + yield PlacesUtils.history.removeVisitsByFilter({ + beginDate: new Date(0), + endDate: range[1] + }); + histogram.add(20); + + try { + Services.logins.removeAllLogins(); + } catch (ex) { + // ignore failure. + } + histogram.add(25); + this.removeUndoOption(this.UNDO_REMOVED_REASON_UNDO_USED); + histogram.add(30); + }), + + removeUndoOption(reason) { + // Remove observers, and ensure that exceptions doing so don't break + // removing the pref. + for (let topic of [kSyncTopic, kPasswordManagerTopic]) { + try { + Services.obs.removeObserver(this, topic); + } catch (ex) { + Cu.reportError("Error removing observer for " + topic + ": " + ex); + } + } + try { + PlacesUtils.removeLazyBookmarkObserver(this); + } catch (ex) { + Cu.reportError("Error removing lazy bookmark observer: " + ex); + } + + let migrationBrowser = Preferences.get(kAutoMigrateBrowserPref, "unknown"); + Services.prefs.clearUserPref(kAutoMigrateStartedPref); + Services.prefs.clearUserPref(kAutoMigrateFinishedPref); + Services.prefs.clearUserPref(kAutoMigrateBrowserPref); + + let browserWindows = Services.wm.getEnumerator("navigator:browser"); + while (browserWindows.hasMoreElements()) { + let win = browserWindows.getNext(); + if (!win.closed) { + for (let browser of win.gBrowser.browsers) { + let nb = win.gBrowser.getNotificationBox(browser); + let notification = nb.getNotificationWithValue(kNotificationId); + if (notification) { + nb.removeNotification(notification); + } + } + } + } + let histogram = + Services.telemetry.getKeyedHistogramById("FX_STARTUP_MIGRATION_UNDO_REASON"); + histogram.add(migrationBrowser, reason); + }, + + getBrowserUsedForMigration() { + let browserId = Services.prefs.getCharPref(kAutoMigrateBrowserPref); + if (browserId) { + return MigrationUtils.getBrowserName(browserId); + } + return null; + }, + + getLocalizedString(str, args) { + if (args === undefined) + return getBundle().GetStringFromName(str); + return getBundle().formatStringFromName( + str, args, args.length); + }, + + maybeShowUndoNotification(target) { + // The tab might have navigated since we requested the undo state: + if (!this.canUndo() || target.currentURI.spec != "about:home" || + !Preferences.get(kUndoUIEnabledPref, false)) { + return; + } + let win = target.ownerGlobal; + let notificationBox = win.gBrowser.getNotificationBox(target); + if (!notificationBox || notificationBox.getNotificationWithValue("abouthome-automigration-undo")) { + return; + } + + // At this stage we're committed to show the prompt - unless we shouldn't, + // in which case we remove the undo prefs (which will cause canUndo() to + // return false from now on.): + if (!this.shouldStillShowUndoPrompt()) { + this.removeUndoOption(this.UNDO_REMOVED_REASON_OFFER_EXPIRED); + return; + } + + let browserName = this.getBrowserUsedForMigration(); + let message; + if (browserName) { + message = this.getLocalizedString("automigration.undo.message", + [browserName]); + } else { + message = this.getLocalizedString("automigration.undo.unknownBrowserMessage"); + } + + let buttons = [ + { + label: this.getLocalizedString("automigration.undo.keep.label"), + accessKey: this.getLocalizedString("automigration.undo.keep.accesskey"), + callback: () => { + this.removeUndoOption(this.UNDO_REMOVED_REASON_OFFER_REJECTED); + }, + }, + { + label: this.getLocalizedString("automigration.undo.dontkeep.label"), + accessKey: this.getLocalizedString("automigration.undo.dontkeep.accesskey"), + callback: () => { + this.undo(); + }, + }, + ]; + notificationBox.appendNotification( + message, kNotificationId, null, notificationBox.PRIORITY_INFO_HIGH, buttons + ); + }, + + shouldStillShowUndoPrompt() { + let today = new Date(); + // Round down to midnight: + today = new Date(today.getFullYear(), today.getMonth(), today.getDate()); + // We store the unix timestamp corresponding to midnight on the last day + // on which we prompted. Fetch that and compare it to today's date. + // (NB: stored as a string because int prefs are too small for unix + // timestamps.) + let previousPromptDateMsStr = Preferences.get(kAutoMigrateLastUndoPromptDateMsPref, "0"); + let previousPromptDate = new Date(parseInt(previousPromptDateMsStr, 10)); + if (previousPromptDate < today) { + let remainingDays = Preferences.get(kAutoMigrateDaysToOfferUndoPref, 4) - 1; + Preferences.set(kAutoMigrateDaysToOfferUndoPref, remainingDays); + Preferences.set(kAutoMigrateLastUndoPromptDateMsPref, today.valueOf().toString()); + if (remainingDays <= 0) { + return false; + } + } + return true; + }, + + UNDO_REMOVED_REASON_UNDO_USED: 0, + UNDO_REMOVED_REASON_SYNC_SIGNIN: 1, + UNDO_REMOVED_REASON_PASSWORD_CHANGE: 2, + UNDO_REMOVED_REASON_BOOKMARK_CHANGE: 3, + UNDO_REMOVED_REASON_OFFER_EXPIRED: 4, + UNDO_REMOVED_REASON_OFFER_REJECTED: 5, + + QueryInterface: XPCOMUtils.generateQI( + [Ci.nsIObserver, Ci.nsINavBookmarkObserver, Ci.nsISupportsWeakReference] + ), +}; + +AutoMigrate.init(); diff -Nru firefox-49.0~b6+build1/browser/components/migration/content/automigration.properties firefox-49.0~b7+build1/browser/components/migration/content/automigration.properties --- firefox-49.0~b6+build1/browser/components/migration/content/automigration.properties 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/browser/components/migration/content/automigration.properties 2016-08-26 05:53:10.000000000 +0000 @@ -0,0 +1,7 @@ +# Automigration undo notification. +automigration.undo.message = We automatically imported your data from %S. Would you like to keep it? +automigration.undo.unknownBrowserMessage = We automatically imported your data from another browser. Would you like to keep it? +automigration.undo.keep.label = Keep +automigration.undo.keep.accesskey = K +automigration.undo.dontkeep.label = Don’t Keep +automigration.undo.dontkeep.accesskey = D diff -Nru firefox-49.0~b6+build1/browser/components/migration/content/migration.js firefox-49.0~b7+build1/browser/components/migration/content/migration.js --- firefox-49.0~b6+build1/browser/components/migration/content/migration.js 2016-08-23 06:51:05.000000000 +0000 +++ firefox-49.0~b7+build1/browser/components/migration/content/migration.js 2016-08-26 05:53:10.000000000 +0000 @@ -314,38 +314,14 @@ singleStart.setAttribute("label", mainStr); singleStart.setAttribute("value", "DEFAULT"); - var source = null; - switch (this._source) { - case "ie": - source = "sourceNameIE"; - break; - case "safari": - source = "sourceNameSafari"; - break; - case "canary": - source = "sourceNameCanary"; - break; - case "chrome": - source = "sourceNameChrome"; - break; - case "chromium": - source = "sourceNameChromium"; - break; - case "firefox": - source = "sourceNameFirefox"; - break; - case "360se": - source = "sourceName360se"; - break; - } + var appName = MigrationUtils.getBrowserName(this._source); // semi-wallpaper for crash when multiple profiles exist, since we haven't initialized mSourceProfile in places this._migrator.getMigrateData(this._selectedProfile, this._autoMigrate); var oldHomePageURL = this._migrator.sourceHomePageURL; - if (oldHomePageURL && source) { - var appName = MigrationUtils.getLocalizedString(source); + if (oldHomePageURL && appName) { var oldHomePageLabel = brandBundle.getFormattedString("homePageImport", [appName]); var oldHomePage = document.getElementById("oldHomePage"); diff -Nru firefox-49.0~b6+build1/browser/components/migration/jar.mn firefox-49.0~b7+build1/browser/components/migration/jar.mn --- firefox-49.0~b6+build1/browser/components/migration/jar.mn 2016-08-23 06:51:05.000000000 +0000 +++ firefox-49.0~b7+build1/browser/components/migration/jar.mn 2016-08-26 05:53:10.000000000 +0000 @@ -5,4 +5,5 @@ browser.jar: * content/browser/migration/migration.xul (content/migration.xul) content/browser/migration/migration.js (content/migration.js) + content/browser/migration/automigration.properties (content/automigration.properties) content/browser/aboutWelcomeBack.xhtml (content/aboutWelcomeBack.xhtml) diff -Nru firefox-49.0~b6+build1/browser/components/migration/MigrationUtils.jsm firefox-49.0~b7+build1/browser/components/migration/MigrationUtils.jsm --- firefox-49.0~b6+build1/browser/components/migration/MigrationUtils.jsm 2016-08-23 06:51:05.000000000 +0000 +++ firefox-49.0~b7+build1/browser/components/migration/MigrationUtils.jsm 2016-08-26 05:53:10.000000000 +0000 @@ -10,17 +10,21 @@ const TOPIC_WILL_IMPORT_BOOKMARKS = "initial-migration-will-import-default-bookmarks"; const TOPIC_DID_IMPORT_BOOKMARKS = "initial-migration-did-import-default-bookmarks"; -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); +Cu.import("resource://gre/modules/AppConstants.jsm"); Cu.import("resource://gre/modules/Services.jsm"); Cu.import("resource://gre/modules/Task.jsm"); -Cu.import("resource://gre/modules/AppConstants.jsm"); +Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "PlacesUtils", - "resource://gre/modules/PlacesUtils.jsm"); +XPCOMUtils.defineLazyModuleGetter(this, "AutoMigrate", + "resource:///modules/AutoMigrate.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "BookmarkHTMLUtils", "resource://gre/modules/BookmarkHTMLUtils.jsm"); +XPCOMUtils.defineLazyModuleGetter(this, "PlacesUtils", + "resource://gre/modules/PlacesUtils.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "PromiseUtils", "resource://gre/modules/PromiseUtils.jsm"); +XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch", + "resource://gre/modules/TelemetryStopwatch.jsm"); var gMigrators = null; var gProfileStartup = null; @@ -95,7 +99,7 @@ * profiles. * * Each migration resource should provide: - * - a |type| getter, retunring any of the migration types (see + * - a |type| getter, returning any of the migration types (see * nsIBrowserProfileMigrator). * * - a |migrate| method, taking a single argument, aCallback(bool success), @@ -181,6 +185,10 @@ return types.reduce((a, b) => a |= b, 0); }, + getKey: function MP_getKey() { + return this.contractID.match(/\=([^\=]+)$/)[1]; + }, + /** * DO NOT OVERRIDE - After deCOMing migration, the UI will just call * migrate for each resource. @@ -202,6 +210,31 @@ }); }; + let getHistogramForResourceType = resourceType => { + if (resourceType == MigrationUtils.resourceTypes.HISTORY) { + return "FX_MIGRATION_HISTORY_IMPORT_MS"; + } + if (resourceType == MigrationUtils.resourceTypes.BOOKMARKS) { + return "FX_MIGRATION_BOOKMARKS_IMPORT_MS"; + } + if (resourceType == MigrationUtils.resourceTypes.PASSWORDS) { + return "FX_MIGRATION_LOGINS_IMPORT_MS"; + } + return null; + }; + let maybeStartTelemetryStopwatch = (resourceType, resource) => { + let histogram = getHistogramForResourceType(resourceType); + if (histogram) { + TelemetryStopwatch.startKeyed(histogram, this.getKey(), resource); + } + }; + let maybeStopTelemetryStopwatch = (resourceType, resource) => { + let histogram = getHistogramForResourceType(resourceType); + if (histogram) { + TelemetryStopwatch.finishKeyed(histogram, this.getKey(), resource); + } + }; + // Called either directly or through the bookmarks import callback. let doMigrate = Task.async(function*() { let resourcesGroupedByItems = new Map(); @@ -230,8 +263,10 @@ for (let res of itemResources) { // Workaround bug 449811. let resource = res; + maybeStartTelemetryStopwatch(migrationType, resource); let completeDeferred = PromiseUtils.defer(); let resourceDone = function(aSuccess) { + maybeStopTelemetryStopwatch(migrationType, resource); itemResources.delete(resource); itemSuccess |= aSuccess; if (itemResources.size == 0) { @@ -436,6 +471,36 @@ aKey, aReplacements, aReplacements.length); }, + _getLocalePropertyForBrowser(browserId) { + switch (browserId) { + case "edge": + return "sourceNameEdge"; + case "ie": + return "sourceNameIE"; + case "safari": + return "sourceNameSafari"; + case "canary": + return "sourceNameCanary"; + case "chrome": + return "sourceNameChrome"; + case "chromium": + return "sourceNameChromium"; + case "firefox": + return "sourceNameFirefox"; + case "360se": + return "sourceName360se"; + } + return null; + }, + + getBrowserName(browserId) { + let prop = this._getLocalePropertyForBrowser(browserId); + if (prop) { + return this.getLocalizedString(prop); + } + return null; + }, + /** * Helper for creating a folder for imported bookmarks from a particular * migration source. The folder is created at the end of the given folder. @@ -513,6 +578,7 @@ // Canary uses the same description as Chrome so we can't distinguish them. const APP_DESC_TO_KEY = { "Internet Explorer": "ie", + "Microsoft Edge": "edge", "Safari": "safari", "Firefox": "firefox", "Google Chrome": "chrome", // Windows, Linux @@ -696,8 +762,21 @@ } } + let isRefresh = migrator && skipSourcePage && + migratorKey == AppConstants.MOZ_APP_NAME; + + if (!isRefresh && AutoMigrate.enabled) { + try { + AutoMigrate.migrate(aProfileStartup, aMigratorKey, aProfileToMigrate); + return; + } catch (ex) { + // If automigration failed, continue and show the dialog. + Cu.reportError(ex); + } + } + let migrationEntryPoint = this.MIGRATION_ENTRYPOINT_FIRSTRUN; - if (migrator && skipSourcePage && migratorKey == AppConstants.MOZ_APP_NAME) { + if (isRefresh) { migrationEntryPoint = this.MIGRATION_ENTRYPOINT_FXREFRESH; } @@ -721,6 +800,8 @@ gMigrationBundle = null; }, + gAvailableMigratorKeys, + MIGRATION_ENTRYPOINT_UNKNOWN: 0, MIGRATION_ENTRYPOINT_FIRSTRUN: 1, MIGRATION_ENTRYPOINT_FXREFRESH: 2, diff -Nru firefox-49.0~b6+build1/browser/components/migration/moz.build firefox-49.0~b7+build1/browser/components/migration/moz.build --- firefox-49.0~b6+build1/browser/components/migration/moz.build 2016-08-23 06:51:05.000000000 +0000 +++ firefox-49.0~b7+build1/browser/components/migration/moz.build 2016-08-26 05:53:10.000000000 +0000 @@ -27,6 +27,7 @@ ] EXTRA_JS_MODULES += [ + 'AutoMigrate.jsm', 'MigrationUtils.jsm', ] diff -Nru firefox-49.0~b6+build1/browser/components/migration/tests/unit/test_automigration.js firefox-49.0~b7+build1/browser/components/migration/tests/unit/test_automigration.js --- firefox-49.0~b6+build1/browser/components/migration/tests/unit/test_automigration.js 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/browser/components/migration/tests/unit/test_automigration.js 2016-08-26 05:53:10.000000000 +0000 @@ -0,0 +1,288 @@ +Cu.import("resource:///modules/MigrationUtils.jsm"); +Cu.import("resource://gre/modules/PlacesUtils.jsm"); +Cu.import("resource://gre/modules/Preferences.jsm"); +Cu.import("resource://testing-common/TestUtils.jsm"); +Cu.import("resource://testing-common/PlacesTestUtils.jsm"); +let AutoMigrateBackstage = Cu.import("resource:///modules/AutoMigrate.jsm"); + +let gShimmedMigratorKeyPicker = null; +let gShimmedMigrator = null; + +const kUsecPerMin = 60 * 1000000; + +// This is really a proxy on MigrationUtils, but if we specify that directly, +// we get in trouble because the object itself is frozen, and Proxies can't +// return a different value to an object when directly proxying a frozen +// object. +AutoMigrateBackstage.MigrationUtils = new Proxy({}, { + get(target, name) { + if (name == "getMigratorKeyForDefaultBrowser" && gShimmedMigratorKeyPicker) { + return gShimmedMigratorKeyPicker; + } + if (name == "getMigrator" && gShimmedMigrator) { + return function() { return gShimmedMigrator }; + } + return MigrationUtils[name]; + }, +}); + +do_register_cleanup(function() { + AutoMigrateBackstage.MigrationUtils = MigrationUtils; +}); + +/** + * Test automatically picking a browser to migrate from + */ +add_task(function* checkMigratorPicking() { + Assert.throws(() => AutoMigrate.pickMigrator("firefox"), + /Can't automatically migrate from Firefox/, + "Should throw when explicitly picking Firefox."); + + Assert.throws(() => AutoMigrate.pickMigrator("gobbledygook"), + /migrator object is not available/, + "Should throw when passing unknown migrator key"); + gShimmedMigratorKeyPicker = function() { + return "firefox"; + }; + Assert.throws(() => AutoMigrate.pickMigrator(), + /Can't automatically migrate from Firefox/, + "Should throw when implicitly picking Firefox."); + gShimmedMigratorKeyPicker = function() { + return "gobbledygook"; + }; + Assert.throws(() => AutoMigrate.pickMigrator(), + /migrator object is not available/, + "Should throw when an unknown migrator is the default"); + gShimmedMigratorKeyPicker = function() { + return ""; + }; + Assert.throws(() => AutoMigrate.pickMigrator(), + /Could not determine default browser key/, + "Should throw when an unknown migrator is the default"); +}); + + +/** + * Test automatically picking a profile to migrate from + */ +add_task(function* checkProfilePicking() { + let fakeMigrator = {sourceProfiles: [{id: "a"}, {id: "b"}]}; + let profB = fakeMigrator.sourceProfiles[1]; + Assert.throws(() => AutoMigrate.pickProfile(fakeMigrator), + /Don't know how to pick a profile when more/, + "Should throw when there are multiple profiles."); + Assert.throws(() => AutoMigrate.pickProfile(fakeMigrator, "c"), + /Profile specified was not found/, + "Should throw when the profile supplied doesn't exist."); + let profileToMigrate = AutoMigrate.pickProfile(fakeMigrator, "b"); + Assert.equal(profileToMigrate, profB, "Should return profile supplied"); + + fakeMigrator.sourceProfiles = null; + Assert.throws(() => AutoMigrate.pickProfile(fakeMigrator, "c"), + /Profile specified but only a default profile found./, + "Should throw when the profile supplied doesn't exist."); + profileToMigrate = AutoMigrate.pickProfile(fakeMigrator); + Assert.equal(profileToMigrate, null, "Should return default profile when that's the only one."); + + fakeMigrator.sourceProfiles = []; + Assert.throws(() => AutoMigrate.pickProfile(fakeMigrator), + /No profile data found/, + "Should throw when no profile data is present."); + + fakeMigrator.sourceProfiles = [{id: "a"}]; + let profA = fakeMigrator.sourceProfiles[0]; + profileToMigrate = AutoMigrate.pickProfile(fakeMigrator); + Assert.equal(profileToMigrate, profA, "Should return the only profile if only one is present."); +}); + +/** + * Test the complete automatic process including browser and profile selection, + * and actual migration (which implies startup) + */ +add_task(function* checkIntegration() { + gShimmedMigrator = { + get sourceProfiles() { + do_print("Read sourceProfiles"); + return null; + }, + getMigrateData(profileToMigrate) { + this._getMigrateDataArgs = profileToMigrate; + return Ci.nsIBrowserProfileMigrator.BOOKMARKS; + }, + migrate(types, startup, profileToMigrate) { + this._migrateArgs = [types, startup, profileToMigrate]; + }, + }; + gShimmedMigratorKeyPicker = function() { + return "gobbledygook"; + }; + AutoMigrate.migrate("startup"); + Assert.strictEqual(gShimmedMigrator._getMigrateDataArgs, null, + "getMigrateData called with 'null' as a profile"); + + let {BOOKMARKS, HISTORY, PASSWORDS} = Ci.nsIBrowserProfileMigrator; + let expectedTypes = BOOKMARKS | HISTORY | PASSWORDS; + Assert.deepEqual(gShimmedMigrator._migrateArgs, [expectedTypes, "startup", null], + "migrate called with 'null' as a profile"); +}); + +/** + * Test the undo preconditions and a no-op undo in the automigrator. + */ +add_task(function* checkUndoPreconditions() { + gShimmedMigrator = { + get sourceProfiles() { + do_print("Read sourceProfiles"); + return null; + }, + getMigrateData(profileToMigrate) { + this._getMigrateDataArgs = profileToMigrate; + return Ci.nsIBrowserProfileMigrator.BOOKMARKS; + }, + migrate(types, startup, profileToMigrate) { + this._migrateArgs = [types, startup, profileToMigrate]; + TestUtils.executeSoon(function() { + Services.obs.notifyObservers(null, "Migration:Ended", undefined); + }); + }, + }; + + gShimmedMigratorKeyPicker = function() { + return "gobbledygook"; + }; + AutoMigrate.migrate("startup"); + let migrationFinishedPromise = TestUtils.topicObserved("Migration:Ended"); + Assert.strictEqual(gShimmedMigrator._getMigrateDataArgs, null, + "getMigrateData called with 'null' as a profile"); + + let {BOOKMARKS, HISTORY, PASSWORDS} = Ci.nsIBrowserProfileMigrator; + let expectedTypes = BOOKMARKS | HISTORY | PASSWORDS; + Assert.deepEqual(gShimmedMigrator._migrateArgs, [expectedTypes, "startup", null], + "migrate called with 'null' as a profile"); + + yield migrationFinishedPromise; + Assert.ok(Preferences.has("browser.migrate.automigrate.started"), + "Should have set start time pref"); + Assert.ok(Preferences.has("browser.migrate.automigrate.finished"), + "Should have set finish time pref"); + Assert.ok(AutoMigrate.canUndo(), "Should be able to undo migration"); + + let [beginRange, endRange] = AutoMigrate.getUndoRange(); + let stringRange = `beginRange: ${beginRange}; endRange: ${endRange}`; + Assert.ok(beginRange <= endRange, + "Migration should have started before or when it ended " + stringRange); + + yield AutoMigrate.undo(); + Assert.ok(true, "Should be able to finish an undo cycle."); +}); + +/** + * Fake a migration and then try to undo it to verify all data gets removed. + */ +add_task(function* checkUndoRemoval() { + let startTime = "" + Date.now(); + + // Insert a login and check that that worked. + let login = Cc["@mozilla.org/login-manager/loginInfo;1"].createInstance(Ci.nsILoginInfo); + login.init("www.mozilla.org", "http://www.mozilla.org", null, "user", "pass", "userEl", "passEl"); + Services.logins.addLogin(login); + let storedLogins = Services.logins.findLogins({}, "www.mozilla.org", + "http://www.mozilla.org", null); + Assert.equal(storedLogins.length, 1, "Should have 1 login"); + + // Insert a bookmark and check that we have exactly 1 bookmark for that URI. + yield PlacesUtils.bookmarks.insert({ + parentGuid: PlacesUtils.bookmarks.toolbarGuid, + url: "http://www.example.org/", + title: "Some example bookmark", + }); + + let bookmark = yield PlacesUtils.bookmarks.fetch({url: "http://www.example.org/"}); + Assert.ok(bookmark, "Should have a bookmark before undo"); + Assert.equal(bookmark.title, "Some example bookmark", "Should have correct bookmark before undo."); + + // Insert 2 history visits - one in the current migration time, one from before. + let now_uSec = Date.now() * 1000; + let visitedURI = Services.io.newURI("http://www.example.com/", null, null); + yield PlacesTestUtils.addVisits([ + {uri: visitedURI, visitDate: now_uSec}, + {uri: visitedURI, visitDate: now_uSec - 100 * kUsecPerMin}, + ]); + + // Verify that both visits get reported. + let opts = PlacesUtils.history.getNewQueryOptions(); + opts.resultType = opts.RESULTS_AS_VISIT; + let query = PlacesUtils.history.getNewQuery(); + query.uri = visitedURI; + let visits = PlacesUtils.history.executeQuery(query, opts); + visits.root.containerOpen = true; + Assert.equal(visits.root.childCount, 2, "Should have 2 visits"); + // Clean up: + visits.root.containerOpen = false; + + // Now set finished pref: + let endTime = "" + Date.now(); + Preferences.set("browser.migrate.automigrate.started", startTime); + Preferences.set("browser.migrate.automigrate.finished", endTime); + + // Verify that we can undo, then undo: + Assert.ok(AutoMigrate.canUndo(), "Should be possible to undo migration"); + yield AutoMigrate.undo(); + + // Check that the undo removed the history visits: + visits = PlacesUtils.history.executeQuery(query, opts); + visits.root.containerOpen = true; + Assert.equal(visits.root.childCount, 0, "Should have no more visits"); + visits.root.containerOpen = false; + + // Check that the undo removed the bookmarks: + bookmark = yield PlacesUtils.bookmarks.fetch({url: "http://www.example.org/"}); + Assert.ok(!bookmark, "Should have no bookmarks after undo"); + + // Check that the undo removed the passwords: + storedLogins = Services.logins.findLogins({}, "www.mozilla.org", + "http://www.mozilla.org", null); + Assert.equal(storedLogins.length, 0, "Should have no logins"); + + // Finally check prefs got cleared: + Assert.ok(!Preferences.has("browser.migrate.automigrate.started"), + "Should no longer have pref for migration start time."); + Assert.ok(!Preferences.has("browser.migrate.automigrate.finished"), + "Should no longer have pref for migration finish time."); +}); + +add_task(function* checkUndoDisablingByBookmarksAndPasswords() { + let startTime = "" + Date.now(); + Services.prefs.setCharPref("browser.migrate.automigrate.started", startTime); + // Now set finished pref: + let endTime = "" + (Date.now() + 1000); + Services.prefs.setCharPref("browser.migrate.automigrate.finished", endTime); + AutoMigrate.maybeInitUndoObserver(); + + ok(AutoMigrate.canUndo(), "Should be able to undo."); + + // Insert a login and check that that disabled undo. + let login = Cc["@mozilla.org/login-manager/loginInfo;1"].createInstance(Ci.nsILoginInfo); + login.init("www.mozilla.org", "http://www.mozilla.org", null, "user", "pass", "userEl", "passEl"); + Services.logins.addLogin(login); + + ok(!AutoMigrate.canUndo(), "Should no longer be able to undo."); + Services.prefs.setCharPref("browser.migrate.automigrate.started", startTime); + Services.prefs.setCharPref("browser.migrate.automigrate.finished", endTime); + ok(AutoMigrate.canUndo(), "Should be able to undo."); + AutoMigrate.maybeInitUndoObserver(); + + // Insert a bookmark and check that that disabled undo. + yield PlacesUtils.bookmarks.insert({ + parentGuid: PlacesUtils.bookmarks.toolbarGuid, + url: "http://www.example.org/", + title: "Some example bookmark", + }); + ok(!AutoMigrate.canUndo(), "Should no longer be able to undo."); + + try { + Services.logins.removeAllLogins(); + } catch (ex) {} + yield PlacesUtils.bookmarks.eraseEverything(); +}); + diff -Nru firefox-49.0~b6+build1/browser/components/migration/tests/unit/xpcshell.ini firefox-49.0~b7+build1/browser/components/migration/tests/unit/xpcshell.ini --- firefox-49.0~b6+build1/browser/components/migration/tests/unit/xpcshell.ini 2016-08-23 06:51:05.000000000 +0000 +++ firefox-49.0~b7+build1/browser/components/migration/tests/unit/xpcshell.ini 2016-08-26 05:53:10.000000000 +0000 @@ -7,6 +7,7 @@ Library/** AppData/** +[test_automigration.js] [test_Chrome_cookies.js] skip-if = os != "mac" # Relies on ULibDir [test_Chrome_passwords.js] diff -Nru firefox-49.0~b6+build1/browser/components/nsBrowserGlue.js firefox-49.0~b7+build1/browser/components/nsBrowserGlue.js --- firefox-49.0~b6+build1/browser/components/nsBrowserGlue.js 2016-08-23 06:51:05.000000000 +0000 +++ firefox-49.0~b7+build1/browser/components/nsBrowserGlue.js 2016-08-26 05:53:10.000000000 +0000 @@ -797,6 +797,9 @@ SelfSupportBackend.init(); + // Ensure we keep track of places/pw-mananager undo by init'ing this early. + Cu.import("resource:///modules/AutoMigrate.jsm"); + if (!AppConstants.RELEASE_BUILD) { let themeName = gBrowserBundle.GetStringFromName("deveditionTheme.name"); let vendorShortName = gBrandBundle.GetStringFromName("vendorShortName"); diff -Nru firefox-49.0~b6+build1/browser/config/version_display.txt firefox-49.0~b7+build1/browser/config/version_display.txt --- firefox-49.0~b6+build1/browser/config/version_display.txt 2016-08-23 06:51:05.000000000 +0000 +++ firefox-49.0~b7+build1/browser/config/version_display.txt 2016-08-26 05:53:11.000000000 +0000 @@ -1 +1 @@ -49.0b6 +49.0b7 diff -Nru firefox-49.0~b6+build1/browser/installer/package-manifest.in firefox-49.0~b7+build1/browser/installer/package-manifest.in --- firefox-49.0~b6+build1/browser/installer/package-manifest.in 2016-08-23 06:51:05.000000000 +0000 +++ firefox-49.0~b7+build1/browser/installer/package-manifest.in 2016-08-26 05:53:11.000000000 +0000 @@ -135,6 +135,13 @@ @RESPATH@/run-mozilla.sh #endif #endif +#ifdef XP_WIN +#ifdef _AMD64_ +@BINPATH@/@DLL_PREFIX@qipcap64@DLL_SUFFIX@ +#else +@BINPATH@/@DLL_PREFIX@qipcap@DLL_SUFFIX@ +#endif +#endif ; [Components] @RESPATH@/browser/components/components.manifest diff -Nru firefox-49.0~b6+build1/browser/modules/AboutHome.jsm firefox-49.0~b7+build1/browser/modules/AboutHome.jsm --- firefox-49.0~b6+build1/browser/modules/AboutHome.jsm 2016-08-23 06:51:06.000000000 +0000 +++ firefox-49.0~b7+build1/browser/modules/AboutHome.jsm 2016-08-26 05:53:11.000000000 +0000 @@ -15,10 +15,12 @@ XPCOMUtils.defineLazyModuleGetter(this, "AppConstants", "resource://gre/modules/AppConstants.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils", - "resource://gre/modules/PrivateBrowsingUtils.jsm"); +XPCOMUtils.defineLazyModuleGetter(this, "AutoMigrate", + "resource:///modules/AutoMigrate.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "fxAccounts", "resource://gre/modules/FxAccounts.jsm"); +XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils", + "resource://gre/modules/PrivateBrowsingUtils.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "Promise", "resource://gre/modules/Promise.jsm"); @@ -99,6 +101,7 @@ "AboutHome:Sync", "AboutHome:Settings", "AboutHome:RequestUpdate", + "AboutHome:MaybeShowAutoMigrationUndoNotification", ], init: function() { @@ -148,6 +151,10 @@ case "AboutHome:RequestUpdate": this.sendAboutHomeData(aMessage.target); break; + + case "AboutHome:MaybeShowAutoMigrationUndoNotification": + AutoMigrate.maybeShowUndoNotification(aMessage.target); + break; } }, @@ -182,5 +189,6 @@ }).then(null, function onError(x) { Cu.reportError("Error in AboutHome.sendAboutHomeData: " + x); }); - } + }, + }; diff -Nru firefox-49.0~b6+build1/browser/themes/osx/browser.css firefox-49.0~b7+build1/browser/themes/osx/browser.css --- firefox-49.0~b6+build1/browser/themes/osx/browser.css 2016-08-23 06:51:06.000000000 +0000 +++ firefox-49.0~b7+build1/browser/themes/osx/browser.css 2016-08-26 05:53:11.000000000 +0000 @@ -1064,11 +1064,6 @@ #panic-button@toolbarButtonPressed@ { -moz-image-region: rect(36px, 1404px, 72px, 1368px); } - - #add-share-provider { - list-style-image: url(chrome://browser/skin/menuPanel-small@2x.png); - -moz-image-region: rect(0px, 192px, 32px, 160px); - } } toolbar .toolbarbutton-1:not([type="menu-button"]), diff -Nru firefox-49.0~b6+build1/browser/themes/osx/devedition.css firefox-49.0~b7+build1/browser/themes/osx/devedition.css --- firefox-49.0~b6+build1/browser/themes/osx/devedition.css 2016-08-23 06:51:05.000000000 +0000 +++ firefox-49.0~b7+build1/browser/themes/osx/devedition.css 2016-08-26 05:53:11.000000000 +0000 @@ -32,16 +32,6 @@ margin-top: 6px; } -/* In private windows, the #titlebar-content is higher because of the - * private browsing indicator. With the margin-top the titlebar buttons - * align to the top correctly in that case, but only if we don't stretch - * the box they're in because the container is too high, so we override - * the default alignment value (stretch). - */ -#main-window[tabsintitlebar] > #titlebar > #titlebar-content > #titlebar-buttonbox-container { - -moz-box-align: start; -} - /* Square back and forward buttons. Need !important on these because there are a lot of more specific selectors sprinkled around elsewhere for changing background / shadows for different states */ diff -Nru firefox-49.0~b6+build1/browser/themes/shared/menupanel.inc.css firefox-49.0~b7+build1/browser/themes/shared/menupanel.inc.css --- firefox-49.0~b6+build1/browser/themes/shared/menupanel.inc.css 2016-08-23 06:51:06.000000000 +0000 +++ firefox-49.0~b7+build1/browser/themes/shared/menupanel.inc.css 2016-08-26 05:53:11.000000000 +0000 @@ -393,6 +393,11 @@ -moz-image-region: rect(0, 1664px, 64px, 1600px); } + #add-share-provider { + list-style-image: url(chrome://browser/skin/menuPanel-small@2x.png); + -moz-image-region: rect(0px, 192px, 32px, 160px); + } + /* Footer and wide panel control icons */ #edit-controls@inAnyPanel@ > toolbarbutton, #zoom-controls@inAnyPanel@ > toolbarbutton, diff -Nru firefox-49.0~b6+build1/debian/changelog firefox-49.0~b7+build1/debian/changelog --- firefox-49.0~b6+build1/debian/changelog 2016-08-23 07:14:28.000000000 +0000 +++ firefox-49.0~b7+build1/debian/changelog 2016-08-26 05:41:34.000000000 +0000 @@ -1,3 +1,9 @@ +firefox (49.0~b7+build1-0ubuntu0.16.04.1) xenial; urgency=medium + + * New upstream release from the beta channel (FIREFOX_49_0b7_BUILD1) + + -- Rico Tzschichholz Fri, 26 Aug 2016 07:41:34 +0200 + firefox (49.0~b6+build1-0ubuntu0.16.04.1) xenial; urgency=medium * New upstream release from the beta channel (FIREFOX_49_0b6_BUILD1) diff -Nru firefox-49.0~b6+build1/dom/base/ImageEncoder.cpp firefox-49.0~b7+build1/dom/base/ImageEncoder.cpp --- firefox-49.0~b6+build1/dom/base/ImageEncoder.cpp 2016-08-23 06:51:06.000000000 +0000 +++ firefox-49.0~b7+build1/dom/base/ImageEncoder.cpp 2016-08-26 05:53:12.000000000 +0000 @@ -436,6 +436,12 @@ imgStream = do_QueryInterface(aEncoder); } } else { + CheckedInt32 requiredBytes = CheckedInt32(aSize.width) * CheckedInt32(aSize.height) * 4; + if (MOZ_UNLIKELY(!requiredBytes.isValid())) { + return NS_ERROR_INVALID_ARG; + } + + // no context, so we have to encode an empty image // note that if we didn't have a current context, the spec says we're // supposed to just return transparent black pixels of the canvas diff -Nru firefox-49.0~b6+build1/dom/base/nsDOMWindowUtils.cpp firefox-49.0~b7+build1/dom/base/nsDOMWindowUtils.cpp --- firefox-49.0~b6+build1/dom/base/nsDOMWindowUtils.cpp 2016-08-23 06:51:06.000000000 +0000 +++ firefox-49.0~b7+build1/dom/base/nsDOMWindowUtils.cpp 2016-08-26 05:53:12.000000000 +0000 @@ -3939,6 +3939,17 @@ return NS_OK; } +NS_IMETHODIMP +nsDOMWindowUtils::ForceReflowInterrupt() +{ + nsPresContext* pc = GetPresContext(); + if (!pc) { + return NS_ERROR_NOT_AVAILABLE; + } + pc->SetPendingInterruptFromTest(); + return NS_OK; +} + NS_INTERFACE_MAP_BEGIN(nsTranslationNodeList) NS_INTERFACE_MAP_ENTRY(nsISupports) NS_INTERFACE_MAP_ENTRY(nsITranslationNodeList) diff -Nru firefox-49.0~b6+build1/dom/indexedDB/ActorsParent.cpp firefox-49.0~b7+build1/dom/indexedDB/ActorsParent.cpp --- firefox-49.0~b6+build1/dom/indexedDB/ActorsParent.cpp 2016-08-23 06:51:07.000000000 +0000 +++ firefox-49.0~b7+build1/dom/indexedDB/ActorsParent.cpp 2016-08-26 05:53:14.000000000 +0000 @@ -12517,12 +12517,16 @@ if (owningThread) { mDatabaseInfo->AssertIsOnConnectionThread(); - MOZ_ASSERT(mDatabaseInfo->mConnection); - mDatabaseInfo->mConnection->DoIdleProcessing(mNeedsCheckpoint); - MOZ_ALWAYS_SUCCEEDS( - owningThread->Dispatch(this, NS_DISPATCH_NORMAL)); - return NS_OK; + // The connection could be null if EnsureConnection() didn't run or was not + // successful in TransactionDatabaseOperationBase::RunOnConnectionThread(). + if (mDatabaseInfo->mConnection) { + mDatabaseInfo->mConnection->DoIdleProcessing(mNeedsCheckpoint); + + MOZ_ALWAYS_SUCCEEDS( + owningThread->Dispatch(this, NS_DISPATCH_NORMAL)); + return NS_OK; + } } RefPtr connectionPool = mDatabaseInfo->mConnectionPool; @@ -12561,6 +12565,8 @@ nsCOMPtr owningThread; mOwningThread.swap(owningThread); + // The connection could be null if EnsureConnection() didn't run or was not + // successful in TransactionDatabaseOperationBase::RunOnConnectionThread(). if (mDatabaseInfo->mConnection) { mDatabaseInfo->AssertIsOnConnectionThread(); diff -Nru firefox-49.0~b6+build1/dom/interfaces/base/nsIDOMWindowUtils.idl firefox-49.0~b7+build1/dom/interfaces/base/nsIDOMWindowUtils.idl --- firefox-49.0~b6+build1/dom/interfaces/base/nsIDOMWindowUtils.idl 2016-08-23 06:51:07.000000000 +0000 +++ firefox-49.0~b7+build1/dom/interfaces/base/nsIDOMWindowUtils.idl 2016-08-26 05:53:14.000000000 +0000 @@ -1889,6 +1889,12 @@ * was last provided is what will be used. */ void respectDisplayPortSuppression(in boolean aEnabled); + + /** + * Set a flag that forces the next reflow interrupt check to return true. This + * can be used by tests to force execution of the interrupted reflow codepaths. + */ + void forceReflowInterrupt(); }; [scriptable, uuid(c694e359-7227-4392-a138-33c0cc1f15a6)] diff -Nru firefox-49.0~b6+build1/dom/media/gmp/GMPParent.cpp firefox-49.0~b7+build1/dom/media/gmp/GMPParent.cpp --- firefox-49.0~b6+build1/dom/media/gmp/GMPParent.cpp 2016-08-23 06:51:07.000000000 +0000 +++ firefox-49.0~b7+build1/dom/media/gmp/GMPParent.cpp 2016-08-26 05:53:14.000000000 +0000 @@ -40,8 +40,10 @@ #include "WMFDecoderModule.h" #endif +#ifdef MOZ_EME #include "mozilla/dom/WidevineCDMManifestBinding.h" #include "widevine-adapter/WidevineAdapter.h" +#endif namespace mozilla { @@ -807,6 +809,7 @@ return ReadGMPInfoFile(infoFile); } +#ifdef MOZ_EME // Maybe this is the Widevine adapted plugin? nsCOMPtr manifestFile; rv = mDirectory->Clone(getter_AddRefs(manifestFile)); @@ -815,6 +818,9 @@ } manifestFile->AppendRelativePath(NS_LITERAL_STRING("manifest.json")); return ReadChromiumManifestFile(manifestFile); +#else + return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__); +#endif } RefPtr @@ -928,6 +934,7 @@ LOGD("%s: for '%s'", __FUNCTION__, NS_LossyConvertUTF16toASCII(aJSON).get()); MOZ_ASSERT(NS_IsMainThread()); +#ifdef MOZ_EME mozilla::dom::WidevineCDMManifest m; if (!m.Init(aJSON)) { return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__); @@ -960,6 +967,10 @@ #endif return GenericPromise::CreateAndResolve(true, __func__); +#else + MOZ_ASSERT_UNREACHABLE("don't call me if EME isn't enabled"); + return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__); +#endif } bool diff -Nru firefox-49.0~b6+build1/dom/media/mediasource/SourceBufferResource.cpp firefox-49.0~b7+build1/dom/media/mediasource/SourceBufferResource.cpp --- firefox-49.0~b6+build1/dom/media/mediasource/SourceBufferResource.cpp 2016-08-23 06:51:07.000000000 +0000 +++ firefox-49.0~b7+build1/dom/media/mediasource/SourceBufferResource.cpp 2016-08-26 05:53:14.000000000 +0000 @@ -36,84 +36,59 @@ } nsresult -SourceBufferResource::ReadInternal(char* aBuffer, uint32_t aCount, uint32_t* aBytes, bool aMayBlock) +SourceBufferResource::ReadAt(int64_t aOffset, char* aBuffer, uint32_t aCount, uint32_t* aBytes) +{ + SBR_DEBUG("ReadAt(aOffset=%lld, aBuffer=%p, aCount=%u, aBytes=%p)", + aOffset, aBytes, aCount, aBytes); + ReentrantMonitorAutoEnter mon(mMonitor); + return ReadAtInternal(aOffset, aBuffer, aCount, aBytes, /* aMayBlock = */ true); +} + +nsresult +SourceBufferResource::ReadAtInternal(int64_t aOffset, char* aBuffer, uint32_t aCount, uint32_t* aBytes, + bool aMayBlock) { mMonitor.AssertCurrentThreadIn(); + MOZ_ASSERT_IF(!aMayBlock, aBytes); - // Cache the offset for the read in case mOffset changes while waiting on the - // monitor below. It's basically impossible to implement these API semantics - // sanely. :-( - uint64_t readOffset = mOffset; + if (mClosed || + aOffset < 0 || + uint64_t(aOffset) < mInputBuffer.GetOffset() || + aOffset > GetLength()) { + return NS_ERROR_FAILURE; + } while (aMayBlock && !mEnded && - readOffset + aCount > static_cast(GetLength())) { + aOffset + aCount > GetLength()) { SBR_DEBUGV("waiting for data"); mMonitor.Wait(); // The callers of this function should have checked this, but it's // possible that we had an eviction while waiting on the monitor. - if (readOffset < mInputBuffer.GetOffset()) { + if (uint64_t(aOffset) < mInputBuffer.GetOffset()) { return NS_ERROR_FAILURE; } } - uint32_t available = GetLength() - readOffset; + uint32_t available = GetLength() - aOffset; uint32_t count = std::min(aCount, available); - SBR_DEBUGV("readOffset=%llu GetLength()=%u available=%u count=%u mEnded=%d", - readOffset, GetLength(), available, count, mEnded); + + // Keep the position of the last read to have Tell() approximately give us + // the position we're up to in the stream. + mOffset = aOffset + count; + + SBR_DEBUGV("offset=%llu GetLength()=%u available=%u count=%u mEnded=%d", + aOffset, GetLength(), available, count, mEnded); if (available == 0) { SBR_DEBUGV("reached EOF"); *aBytes = 0; return NS_OK; } - mInputBuffer.CopyData(readOffset, count, aBuffer); + mInputBuffer.CopyData(aOffset, count, aBuffer); *aBytes = count; - // From IRC: - // <@cpearce>bholley: *this* is why there should only every be a ReadAt() and - // no Read() on a Stream abstraction! there's no good answer, they all suck. - mOffset = readOffset + count; - - return NS_OK; -} - -nsresult -SourceBufferResource::ReadAt(int64_t aOffset, char* aBuffer, uint32_t aCount, uint32_t* aBytes) -{ - SBR_DEBUG("ReadAt(aOffset=%lld, aBuffer=%p, aCount=%u, aBytes=%p)", - aOffset, aBytes, aCount, aBytes); - ReentrantMonitorAutoEnter mon(mMonitor); - return ReadAtInternal(aOffset, aBuffer, aCount, aBytes, /* aMayBlock = */ true); -} - -nsresult -SourceBufferResource::ReadAtInternal(int64_t aOffset, char* aBuffer, uint32_t aCount, uint32_t* aBytes, - bool aMayBlock) -{ - mMonitor.AssertCurrentThreadIn(); - nsresult rv = SeekInternal(aOffset); - if (NS_FAILED(rv)) { - return rv; - } - - return ReadInternal(aBuffer, aCount, aBytes, aMayBlock); -} - -nsresult -SourceBufferResource::SeekInternal(int64_t aOffset) -{ - mMonitor.AssertCurrentThreadIn(); - - if (mClosed || - aOffset < 0 || - uint64_t(aOffset) < mInputBuffer.GetOffset() || - aOffset > GetLength()) { - return NS_ERROR_FAILURE; - } - - mOffset = aOffset; return NS_OK; } @@ -124,9 +99,7 @@ aBuffer, aOffset, aCount); ReentrantMonitorAutoEnter mon(mMonitor); uint32_t bytesRead; - int64_t oldOffset = mOffset; nsresult rv = ReadAtInternal(aOffset, aBuffer, aCount, &bytesRead, /* aMayBlock = */ false); - mOffset = oldOffset; // ReadFromCache isn't supposed to affect the seek position. NS_ENSURE_SUCCESS(rv, rv); // ReadFromCache return failure if not all the data is cached. @@ -154,10 +127,9 @@ { SBR_DEBUG("EvictBefore(aOffset=%llu)", aOffset); ReentrantMonitorAutoEnter mon(mMonitor); - // If aOffset is past the current playback offset we don't evict. - if (aOffset < mOffset) { - mInputBuffer.EvictBefore(aOffset, aRv); - } + + mInputBuffer.EvictBefore(aOffset, aRv); + // Wake up any waiting threads in case a ReadInternal call // is now invalid. mon.NotifyAll(); diff -Nru firefox-49.0~b6+build1/dom/media/mediasource/SourceBufferResource.h firefox-49.0~b7+build1/dom/media/mediasource/SourceBufferResource.h --- firefox-49.0~b6+build1/dom/media/mediasource/SourceBufferResource.h 2016-08-23 06:51:07.000000000 +0000 +++ firefox-49.0~b7+build1/dom/media/mediasource/SourceBufferResource.h 2016-08-26 05:53:14.000000000 +0000 @@ -136,8 +136,6 @@ private: virtual ~SourceBufferResource(); - nsresult SeekInternal(int64_t aOffset); - nsresult ReadInternal(char* aBuffer, uint32_t aCount, uint32_t* aBytes, bool aMayBlock); nsresult ReadAtInternal(int64_t aOffset, char* aBuffer, uint32_t aCount, uint32_t* aBytes, bool aMayBlock); const nsCString mType; diff -Nru firefox-49.0~b6+build1/dom/media/MediaStreamGraph.cpp firefox-49.0~b7+build1/dom/media/MediaStreamGraph.cpp --- firefox-49.0~b6+build1/dom/media/MediaStreamGraph.cpp 2016-08-23 06:51:07.000000000 +0000 +++ firefox-49.0~b7+build1/dom/media/MediaStreamGraph.cpp 2016-08-26 05:53:14.000000000 +0000 @@ -23,6 +23,7 @@ #include "AudioNodeStream.h" #include "AudioNodeExternalInputStream.h" #include "mozilla/dom/AudioContextBinding.h" +#include "mozilla/media/MediaUtils.h" #include #include "DOMMediaStream.h" #include "GeckoProfiler.h" @@ -1630,13 +1631,14 @@ } void -MediaStreamGraphImpl::ForceShutDown() +MediaStreamGraphImpl::ForceShutDown(ShutdownTicket* aShutdownTicket) { NS_ASSERTION(NS_IsMainThread(), "Must be called on main thread"); STREAM_LOG(LogLevel::Debug, ("MediaStreamGraph %p ForceShutdown", this)); { MonitorAutoLock lock(mMonitor); mForceShutDown = true; + mForceShutdownTicket = aShutdownTicket; if (mLifecycleState == LIFECYCLE_THREAD_NOT_STARTED) { // We *could* have just sent this a message to start up, so don't // yank the rug out from under it. Tell it to startup and let it @@ -1649,14 +1651,19 @@ } } +/* static */ StaticRefPtr gMediaStreamGraphShutdownBlocker; + namespace { -class MediaStreamGraphShutDownRunnable : public Runnable { +class MediaStreamGraphShutDownRunnable : public Runnable + , public nsITimerCallback { public: explicit MediaStreamGraphShutDownRunnable(MediaStreamGraphImpl* aGraph) : mGraph(aGraph) {} - NS_IMETHOD Run() + NS_DECL_ISUPPORTS_INHERITED + + NS_IMETHOD Run() override { NS_ASSERTION(mGraph->mDetectedNotRunning, "We should know the graph thread control loop isn't running!"); @@ -1674,9 +1681,39 @@ } #endif + if (mGraph->mForceShutdownTicket) { + // Avoid waiting forever for a callback driver to shut down + // synchronously. Reports are that some 3rd-party audio drivers + // occasionally hang in shutdown (both for us and Chrome). + mTimer = do_CreateInstance(NS_TIMER_CONTRACTID); + if (!mTimer) { + return NS_ERROR_FAILURE; + } + mTimer->InitWithCallback(this, + MediaStreamGraph::AUDIO_CALLBACK_DRIVER_SHUTDOWN_TIMEOUT, + nsITimer::TYPE_ONE_SHOT); + } + mGraph->mDriver->Shutdown(); // This will wait until it's shutdown since // we'll start tearing down the graph after this + // We may be one of several graphs. Drop ticket to eventually unblock shutdown. + if (mTimer && !mGraph->mForceShutdownTicket) { + MOZ_ASSERT(false, + "AudioCallbackDriver took too long to shut down and we let shutdown" + " continue - freezing and leaking"); + + // The timer fired, so we may be deeper in shutdown now. Block any further + // teardown and just leak, for safety. + return NS_OK; + } + mTimer = nullptr; + mGraph->mForceShutdownTicket = nullptr; + + // We can't block past the final LIFECYCLE_WAITING_FOR_STREAM_DESTRUCTION + // stage, since completion of that stage requires all streams to be freed, + // which requires shutdown to proceed. + // mGraph's thread is not running so it's OK to do whatever here if (mGraph->IsEmpty()) { // mGraph is no longer needed, so delete it. @@ -1700,10 +1737,30 @@ } return NS_OK; } + + NS_IMETHOD Notify(nsITimer* aTimer) override + { + // Sigh, driver took too long to shut down. Stop blocking system + // shutdown and hope all is well. Shutdown of this graph will proceed + // if the driver eventually comes back. + NS_ASSERTION(!(mGraph->mForceShutdownTicket), + "AudioCallbackDriver took too long to shut down - probably hung"); + + mGraph->mForceShutdownTicket = nullptr; + return NS_OK; + } + private: + ~MediaStreamGraphShutDownRunnable() {} + + nsCOMPtr mTimer; RefPtr mGraph; }; +NS_IMPL_ISUPPORTS_INHERITED(MediaStreamGraphShutDownRunnable, Runnable, nsITimerCallback) + + + class MediaStreamGraphStableStateRunnable : public Runnable { public: explicit MediaStreamGraphStableStateRunnable(MediaStreamGraphImpl* aGraph, @@ -1743,14 +1800,6 @@ } }; -class MediaStreamGraphShutdownObserver final : public nsIObserver -{ - ~MediaStreamGraphShutdownObserver() {} -public: - NS_DECL_ISUPPORTS - NS_DECL_NSIOBSERVER -}; - } // namespace void @@ -3339,26 +3388,6 @@ mSelfRef = nullptr; } -NS_IMPL_ISUPPORTS(MediaStreamGraphShutdownObserver, nsIObserver) - -static bool gShutdownObserverRegistered = false; - -NS_IMETHODIMP -MediaStreamGraphShutdownObserver::Observe(nsISupports *aSubject, - const char *aTopic, - const char16_t *aData) -{ - if (strcmp(aTopic, NS_XPCOM_SHUTDOWN_OBSERVER_ID) == 0) { - for (auto iter = gGraphs.Iter(); !iter.Done(); iter.Next()) { - MediaStreamGraphImpl* graph = iter.UserData(); - graph->ForceShutDown(); - } - nsContentUtils::UnregisterShutdownObserver(this); - gShutdownObserverRegistered = false; - } - return NS_OK; -} - MediaStreamGraph* MediaStreamGraph::GetInstance(MediaStreamGraph::GraphDriverType aGraphDriverRequested, dom::AudioChannel aChannel) @@ -3369,9 +3398,39 @@ MediaStreamGraphImpl* graph = nullptr; if (!gGraphs.Get(channel, &graph)) { - if (!gShutdownObserverRegistered) { - gShutdownObserverRegistered = true; - nsContentUtils::RegisterShutdownObserver(new MediaStreamGraphShutdownObserver()); + if (!gMediaStreamGraphShutdownBlocker) { + + class Blocker : public media::ShutdownBlocker + { + public: + Blocker() + : media::ShutdownBlocker(NS_LITERAL_STRING( + "MediaStreamGraph shutdown: blocking on msg thread")) + {} + + NS_IMETHOD + BlockShutdown(nsIAsyncShutdownClient* aProfileBeforeChange) override + { + // Distribute the global async shutdown blocker in a ticket. If there + // are zero graphs then shutdown is unblocked when we go out of scope. + RefPtr ticket = + new MediaStreamGraphImpl::ShutdownTicket(gMediaStreamGraphShutdownBlocker.get()); + gMediaStreamGraphShutdownBlocker = nullptr; + + for (auto iter = gGraphs.Iter(); !iter.Done(); iter.Next()) { + iter.UserData()->ForceShutDown(ticket); + } + return NS_OK; + } + }; + + gMediaStreamGraphShutdownBlocker = new Blocker(); + nsCOMPtr barrier = MediaStreamGraphImpl::GetShutdownBarrier(); + nsresult rv = barrier-> + AddBlocker(gMediaStreamGraphShutdownBlocker, + NS_LITERAL_STRING(__FILE__), __LINE__, + NS_LITERAL_STRING("MediaStreamGraph shutdown")); + MOZ_RELEASE_ASSERT(NS_SUCCEEDED(rv)); } CubebUtils::InitPreferredSampleRate(); @@ -3419,7 +3478,7 @@ // Start the graph, but don't produce anything graph->StartNonRealtimeProcessing(0); } - graph->ForceShutDown(); + graph->ForceShutDown(nullptr); } NS_IMPL_ISUPPORTS(MediaStreamGraphImpl, nsIMemoryReporter) diff -Nru firefox-49.0~b6+build1/dom/media/MediaStreamGraph.h firefox-49.0~b7+build1/dom/media/MediaStreamGraph.h --- firefox-49.0~b6+build1/dom/media/MediaStreamGraph.h 2016-08-23 06:51:07.000000000 +0000 +++ firefox-49.0~b7+build1/dom/media/MediaStreamGraph.h 2016-08-26 05:53:14.000000000 +0000 @@ -1482,6 +1482,8 @@ SYSTEM_THREAD_DRIVER, OFFLINE_THREAD_DRIVER }; + static const uint32_t AUDIO_CALLBACK_DRIVER_SHUTDOWN_TIMEOUT = 20*1000; + // Main thread only static MediaStreamGraph* GetInstance(GraphDriverType aGraphDriverRequested, dom::AudioChannel aChannel); diff -Nru firefox-49.0~b6+build1/dom/media/MediaStreamGraphImpl.h firefox-49.0~b7+build1/dom/media/MediaStreamGraphImpl.h --- firefox-49.0~b6+build1/dom/media/MediaStreamGraphImpl.h 2016-08-23 06:51:07.000000000 +0000 +++ firefox-49.0~b7+build1/dom/media/MediaStreamGraphImpl.h 2016-08-26 05:53:14.000000000 +0000 @@ -15,6 +15,7 @@ #include "nsIMemoryReporter.h" #include "nsIThread.h" #include "nsIRunnable.h" +#include "nsIAsyncShutdown.h" #include "Latency.h" #include "mozilla/UniquePtr.h" #include "mozilla/WeakPtr.h" @@ -144,13 +145,48 @@ */ void AppendMessage(UniquePtr aMessage); + // Shutdown helpers. + + static already_AddRefed + GetShutdownBarrier() + { + nsCOMPtr svc = services::GetAsyncShutdown(); + MOZ_RELEASE_ASSERT(svc); + + nsCOMPtr barrier; + nsresult rv = svc->GetProfileBeforeChange(getter_AddRefs(barrier)); + if (!barrier) { + // We are probably in a content process. We need to do cleanup at + // XPCOM shutdown in leakchecking builds. + rv = svc->GetXpcomWillShutdown(getter_AddRefs(barrier)); + } + MOZ_RELEASE_ASSERT(NS_SUCCEEDED(rv)); + MOZ_RELEASE_ASSERT(barrier); + return barrier.forget(); + } + + class ShutdownTicket final + { + public: + explicit ShutdownTicket(nsIAsyncShutdownBlocker* aBlocker) : mBlocker(aBlocker) {} + NS_INLINE_DECL_REFCOUNTING(ShutdownTicket) + private: + ~ShutdownTicket() + { + nsCOMPtr barrier = GetShutdownBarrier(); + barrier->RemoveBlocker(mBlocker); + } + + nsCOMPtr mBlocker; + }; + /** * Make this MediaStreamGraph enter forced-shutdown state. This state * will be noticed by the media graph thread, which will shut down all streams * and other state controlled by the media graph thread. * This is called during application shutdown. */ - void ForceShutDown(); + void ForceShutDown(ShutdownTicket* aShutdownTicket); /** * Called before the thread runs. @@ -717,6 +753,12 @@ * True when we need to do a forced shutdown during application shutdown. */ bool mForceShutDown; + + /** + * Drop this reference during shutdown to unblock shutdown. + **/ + RefPtr mForceShutdownTicket; + /** * True when we have posted an event to the main thread to run * RunInStableState() and the event hasn't run yet. diff -Nru firefox-49.0~b6+build1/dom/media/platforms/wmf/WMFVideoMFTManager.cpp firefox-49.0~b7+build1/dom/media/platforms/wmf/WMFVideoMFTManager.cpp --- firefox-49.0~b6+build1/dom/media/platforms/wmf/WMFVideoMFTManager.cpp 2016-08-23 06:51:07.000000000 +0000 +++ firefox-49.0~b7+build1/dom/media/platforms/wmf/WMFVideoMFTManager.cpp 2016-08-26 05:53:14.000000000 +0000 @@ -164,7 +164,7 @@ StaticAutoPtr sD3D9BlacklistingCache; // If a blacklisted DLL is found, return its information, otherwise "". -static const nsACString& +static const nsCString& FindDXVABlacklistedDLL(StaticAutoPtr& aDLLBlacklistingCache, const char* aDLLBlacklistPrefName) { @@ -278,13 +278,13 @@ return aDLLBlacklistingCache->mBlacklistedDLL; } -static const nsACString& +static const nsCString& FindD3D11BlacklistedDLL() { return FindDXVABlacklistedDLL(sD3D11BlacklistingCache, "media.wmf.disable-d3d11-for-dlls"); } -static const nsACString& +static const nsCString& FindD3D9BlacklistedDLL() { return FindDXVABlacklistedDLL(sD3D9BlacklistingCache, "media.wmf.disable-d3d9-for-dlls"); @@ -303,10 +303,10 @@ nsCString secondFailureReason; if (mBackend == LayersBackend::LAYERS_D3D11 && MediaPrefs::PDMWMFAllowD3D11() && IsWin8OrLater()) { - const nsACString& blacklistedDLL = FindD3D11BlacklistedDLL(); + const nsCString& blacklistedDLL = FindD3D11BlacklistedDLL(); if (!blacklistedDLL.IsEmpty()) { failureReason->AppendPrintf("D3D11 blacklisted with DLL %s", - blacklistedDLL); + blacklistedDLL.get()); } else { mDXVA2Manager = DXVA2Manager::CreateD3D11DXVA(*failureReason); if (mDXVA2Manager) { @@ -319,10 +319,10 @@ mFailureReason.Append(NS_LITERAL_CSTRING("; ")); } - const nsACString& blacklistedDLL = FindD3D9BlacklistedDLL(); + const nsCString& blacklistedDLL = FindD3D9BlacklistedDLL(); if (!blacklistedDLL.IsEmpty()) { mFailureReason.AppendPrintf("D3D9 blacklisted with DLL %s", - blacklistedDLL); + blacklistedDLL.get()); } else { mDXVA2Manager = DXVA2Manager::CreateD3D9DXVA(*failureReason); // Make sure we include the messages from both attempts (if applicable). diff -Nru firefox-49.0~b6+build1/dom/media/webrtc/MediaEngineWebRTCAudio.cpp firefox-49.0~b7+build1/dom/media/webrtc/MediaEngineWebRTCAudio.cpp --- firefox-49.0~b6+build1/dom/media/webrtc/MediaEngineWebRTCAudio.cpp 2016-08-23 06:51:07.000000000 +0000 +++ firefox-49.0~b7+build1/dom/media/webrtc/MediaEngineWebRTCAudio.cpp 2016-08-26 05:53:14.000000000 +0000 @@ -780,12 +780,8 @@ if (mState != kStarted) return; - uint32_t len = mSources.Length(); - for (uint32_t i = 0; i < len; i++) { - MOZ_ASSERT(!isStereo); - InsertInGraph(audio10ms, length, 1); - } - + MOZ_ASSERT(!isStereo); + InsertInGraph(audio10ms, length, 1); return; } diff -Nru firefox-49.0~b6+build1/dom/plugins/ipc/PluginModuleParent.cpp firefox-49.0~b7+build1/dom/plugins/ipc/PluginModuleParent.cpp --- firefox-49.0~b6+build1/dom/plugins/ipc/PluginModuleParent.cpp 2016-08-23 06:51:07.000000000 +0000 +++ firefox-49.0~b7+build1/dom/plugins/ipc/PluginModuleParent.cpp 2016-08-26 05:53:15.000000000 +0000 @@ -2651,6 +2651,7 @@ InfallibleTArray& values, NPSavedData* saved, NPError* error) { + MOZ_ASSERT(names.Length() == values.Length()); if (mPluginName.IsEmpty()) { GetPluginDetails(); InitQuirksModes(nsDependentCString(pluginType)); @@ -2676,6 +2677,18 @@ new PluginInstanceParent(this, instance, strPluginType, mNPNIface); if (mIsFlashPlugin) { + // In Bug 1287588, we found out that if the salign attribute is before + // the scale attribute in embed parameters, flash objects render + // incorrectly. This is most likely due to an order of operations + // problem in the plugin itself. Bug 1264270 changes the order in which + // parameters were passed, causing this bug to trigger on pages that + // formerly worked. In order to keep things working the way they were in + // Firefox <= 48, we reverse the order of parameters, making sure it + // happens before we possibly appends more parameters. This should keep + // parameters in the same order as prior versions. + std::reverse(names.begin(), names.end()); + std::reverse(values.begin(), values.end()); + parentInstance->InitMetadata(strPluginType, srcAttribute); #ifdef XP_WIN bool supportsAsyncRender = false; diff -Nru firefox-49.0~b6+build1/gfx/2d/DrawTargetCairo.cpp firefox-49.0~b7+build1/gfx/2d/DrawTargetCairo.cpp --- firefox-49.0~b6+build1/gfx/2d/DrawTargetCairo.cpp 2016-08-23 06:51:08.000000000 +0000 +++ firefox-49.0~b7+build1/gfx/2d/DrawTargetCairo.cpp 2016-08-26 05:53:16.000000000 +0000 @@ -731,7 +731,8 @@ } } #endif - if (cairo_surface_get_type(surf) == CAIRO_SURFACE_TYPE_IMAGE) { + if (cairo_surface_get_type(surf) == CAIRO_SURFACE_TYPE_IMAGE && + cairo_surface_status(surf) == CAIRO_STATUS_SUCCESS) { PointDouble offset; cairo_surface_get_device_offset(target, &offset.x, &offset.y); // verify the device offset can be converted to integers suitable for a bounds rect diff -Nru firefox-49.0~b6+build1/gfx/layers/apz/src/APZCTreeManager.cpp firefox-49.0~b7+build1/gfx/layers/apz/src/APZCTreeManager.cpp --- firefox-49.0~b6+build1/gfx/layers/apz/src/APZCTreeManager.cpp 2016-08-23 06:51:08.000000000 +0000 +++ firefox-49.0~b7+build1/gfx/layers/apz/src/APZCTreeManager.cpp 2016-08-26 05:53:17.000000000 +0000 @@ -499,6 +499,9 @@ aState.mPaintLogger.LogTestData(aMetrics.GetScrollId(), "isRootContent", true); } + // Note that the async scroll offset is in ParentLayer pixels + aState.mPaintLogger.LogTestData(aMetrics.GetScrollId(), "asyncScrollOffset", + apzc->GetCurrentAsyncScrollOffset(AsyncPanZoomController::NORMAL)); } if (newApzc) { diff -Nru firefox-49.0~b6+build1/gfx/layers/apz/src/AsyncPanZoomController.cpp firefox-49.0~b7+build1/gfx/layers/apz/src/AsyncPanZoomController.cpp --- firefox-49.0~b6+build1/gfx/layers/apz/src/AsyncPanZoomController.cpp 2016-08-23 06:51:09.000000000 +0000 +++ firefox-49.0~b7+build1/gfx/layers/apz/src/AsyncPanZoomController.cpp 2016-08-26 05:53:16.000000000 +0000 @@ -2817,16 +2817,16 @@ return listener ? listener->GetLastTouchIdentifier() : -1; } -void AsyncPanZoomController::RequestContentRepaint() { +void AsyncPanZoomController::RequestContentRepaint(bool aUserAction) { // Reinvoke this method on the main thread if it's not there already. It's // important to do this before the call to CalculatePendingDisplayPort, so // that CalculatePendingDisplayPort uses the most recent available version of // mFrameMetrics, just before the paint request is dispatched to content. if (!NS_IsMainThread()) { // use the local variable to resolve the function overload. - auto func = static_cast + auto func = static_cast (&AsyncPanZoomController::RequestContentRepaint); - NS_DispatchToMainThread(NewRunnableMethod(this, func)); + NS_DispatchToMainThread(NewRunnableMethod(this, func, aUserAction)); return; } @@ -2837,6 +2837,7 @@ mFrameMetrics.SetDisplayPortMargins(CalculatePendingDisplayPort(mFrameMetrics, velocity)); mFrameMetrics.SetUseDisplayPortMargins(true); mFrameMetrics.SetPaintRequestTime(TimeStamp::Now()); + mFrameMetrics.SetRepaintDrivenByUserAction(aUserAction); RequestContentRepaint(mFrameMetrics, velocity); } @@ -2897,6 +2898,8 @@ } } + MOZ_ASSERT(aFrameMetrics.GetScrollUpdateType() == FrameMetrics::eNone || + aFrameMetrics.GetScrollUpdateType() == FrameMetrics::eUserAction); controller->RequestContentRepaint(aFrameMetrics); mExpectedGeckoMetrics = aFrameMetrics; mLastPaintRequestMetrics = aFrameMetrics; @@ -3222,6 +3225,20 @@ APZC_LOG("%p NotifyLayersUpdated short-circuit\n", this); return; } + + // If the mFrameMetrics scroll offset is different from the last scroll offset + // that the main-thread sent us, then we know that the user has been doing + // something that triggers a scroll. This check is the APZ equivalent of the + // check on the main-thread at + // https://hg.mozilla.org/mozilla-central/file/97a52326b06a/layout/generic/nsGfxScrollFrame.cpp#l4050 + // There is code below (the use site of userScrolled) that prevents a restored- + // scroll-position update from overwriting a user scroll, again equivalent to + // how the main thread code does the same thing. + CSSPoint lastScrollOffset = mLastContentPaintMetadata.GetMetrics().GetScrollOffset(); + bool userScrolled = + !FuzzyEqualsAdditive(mFrameMetrics.GetScrollOffset().x, lastScrollOffset.x) || + !FuzzyEqualsAdditive(mFrameMetrics.GetScrollOffset().y, lastScrollOffset.y); + if (aLayerMetrics.GetScrollUpdateType() != FrameMetrics::ScrollOffsetUpdateType::ePending) { mLastContentPaintMetadata = aScrollMetadata; } @@ -3287,6 +3304,12 @@ bool scrollOffsetUpdated = aLayerMetrics.GetScrollOffsetUpdated() && (aLayerMetrics.GetScrollGeneration() != mFrameMetrics.GetScrollGeneration()); + if (scrollOffsetUpdated && userScrolled && + aLayerMetrics.GetScrollUpdateType() == FrameMetrics::ScrollOffsetUpdateType::eRestore) { + APZC_LOG("%p dropping scroll update of type eRestore because of user scroll\n", this); + scrollOffsetUpdated = false; + } + bool smoothScrollRequested = aLayerMetrics.GetDoSmoothScroll() && (aLayerMetrics.GetScrollGeneration() != mFrameMetrics.GetScrollGeneration()); @@ -3412,7 +3435,8 @@ } if (needContentRepaint) { - RequestContentRepaint(); + // This repaint request is not driven by a user action on the APZ side + RequestContentRepaint(false); } UpdateSharedCompositorFrameMetrics(); } @@ -3560,6 +3584,7 @@ CalculatePendingDisplayPort(endZoomToMetrics, velocity)); endZoomToMetrics.SetUseDisplayPortMargins(true); endZoomToMetrics.SetPaintRequestTime(TimeStamp::Now()); + endZoomToMetrics.SetRepaintDrivenByUserAction(true); if (NS_IsMainThread()) { RequestContentRepaint(endZoomToMetrics, velocity); } else { diff -Nru firefox-49.0~b6+build1/gfx/layers/apz/src/AsyncPanZoomController.h firefox-49.0~b7+build1/gfx/layers/apz/src/AsyncPanZoomController.h --- firefox-49.0~b6+build1/gfx/layers/apz/src/AsyncPanZoomController.h 2016-08-23 06:51:08.000000000 +0000 +++ firefox-49.0~b7+build1/gfx/layers/apz/src/AsyncPanZoomController.h 2016-08-26 05:53:17.000000000 +0000 @@ -584,7 +584,7 @@ * from a non-main thread, it will redispatch itself to the main thread, and * use the latest metrics during the redispatch. */ - void RequestContentRepaint(); + void RequestContentRepaint(bool aUserAction = true); /** * Send the provided metrics to Gecko to trigger a repaint. This function diff -Nru firefox-49.0~b6+build1/gfx/layers/apz/test/mochitest/mochitest.ini firefox-49.0~b7+build1/gfx/layers/apz/test/mochitest/mochitest.ini --- firefox-49.0~b6+build1/gfx/layers/apz/test/mochitest/mochitest.ini 2016-08-23 06:51:09.000000000 +0000 +++ firefox-49.0~b7+build1/gfx/layers/apz/test/mochitest/mochitest.ini 2016-08-26 05:53:17.000000000 +0000 @@ -43,6 +43,7 @@ [test_scroll_subframe_scrollbar.html] skip-if = (os == 'android') || (os == 'b2g') || (buildapp == 'mulet') # wheel events not supported on mobile; see bug 1164274 for mulet [test_frame_reconstruction.html] +[test_interrupted_reflow.html] [test_group_touchevents.html] # Windows touch injection doesn't work in automation, but this test can be run locally on a windows touch device. # On OS X we don't support touch events at all. diff -Nru firefox-49.0~b6+build1/gfx/layers/apz/test/mochitest/test_interrupted_reflow.html firefox-49.0~b7+build1/gfx/layers/apz/test/mochitest/test_interrupted_reflow.html --- firefox-49.0~b6+build1/gfx/layers/apz/test/mochitest/test_interrupted_reflow.html 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/gfx/layers/apz/test/mochitest/test_interrupted_reflow.html 2016-08-26 05:53:17.000000000 +0000 @@ -0,0 +1,704 @@ + + + + + Test for bug 1292781 + + + + + + + + + +Mozilla Bug 1292781 +

+
+

The frame reconstruction should not leave this scrollframe in a bad state

+
+
+ this is the top of the scrollframe. +
this is a box
+
this is a box
+
this is a box
+
this is a box
+ this is near the top of the scrollframe. +
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+ this is near the bottom of the scrollframe. +
this is a box
+
this is a box
+
this is a box
+
this is a box
+
this is a box
+ this is the bottom of the scrollframe. +
+
+
+ +
+
+
+
diff -Nru firefox-49.0~b6+build1/gfx/layers/apz/util/APZCCallbackHelper.cpp firefox-49.0~b7+build1/gfx/layers/apz/util/APZCCallbackHelper.cpp
--- firefox-49.0~b6+build1/gfx/layers/apz/util/APZCCallbackHelper.cpp	2016-08-23 06:51:09.000000000 +0000
+++ firefox-49.0~b7+build1/gfx/layers/apz/util/APZCCallbackHelper.cpp	2016-08-26 05:53:17.000000000 +0000
@@ -66,15 +66,23 @@
 }
 
 static CSSPoint
-ScrollFrameTo(nsIScrollableFrame* aFrame, const CSSPoint& aPoint, bool& aSuccessOut)
+ScrollFrameTo(nsIScrollableFrame* aFrame, const FrameMetrics& aMetrics, bool& aSuccessOut)
 {
   aSuccessOut = false;
+  CSSPoint targetScrollPosition = aMetrics.GetScrollOffset();
 
   if (!aFrame) {
-    return aPoint;
+    return targetScrollPosition;
   }
 
-  CSSPoint targetScrollPosition = aPoint;
+  CSSPoint geckoScrollPosition = CSSPoint::FromAppUnits(aFrame->GetScrollPosition());
+
+  // If the repaint request was triggered due to a previous main-thread scroll
+  // offset update sent to the APZ, then we don't need to do another scroll here
+  // and we can just return.
+  if (!aMetrics.GetScrollOffsetUpdated()) {
+    return geckoScrollPosition;
+  }
 
   // If the frame is overflow:hidden on a particular axis, we don't want to allow
   // user-driven scroll on that axis. Simply set the scroll position on that axis
@@ -83,7 +91,6 @@
   // (by design). Note also that when we run into this case, even if both axes
   // have overflow:hidden, we want to set aSuccessOut to true, so that the displayport
   // follows the async scroll position rather than the gecko scroll position.
-  CSSPoint geckoScrollPosition = CSSPoint::FromAppUnits(aFrame->GetScrollPosition());
   if (aFrame->GetScrollbarStyles().mVertical == NS_STYLE_OVERFLOW_HIDDEN) {
     targetScrollPosition.y = geckoScrollPosition.y;
   }
@@ -129,7 +136,7 @@
   }
   bool scrollUpdated = false;
   CSSPoint apzScrollOffset = aMetrics.GetScrollOffset();
-  CSSPoint actualScrollOffset = ScrollFrameTo(sf, apzScrollOffset, scrollUpdated);
+  CSSPoint actualScrollOffset = ScrollFrameTo(sf, aMetrics, scrollUpdated);
 
   if (scrollUpdated) {
     if (aMetrics.IsScrollInfoLayer()) {
diff -Nru firefox-49.0~b6+build1/gfx/layers/FrameMetrics.h firefox-49.0~b7+build1/gfx/layers/FrameMetrics.h
--- firefox-49.0~b6+build1/gfx/layers/FrameMetrics.h	2016-08-23 06:51:08.000000000 +0000
+++ firefox-49.0~b7+build1/gfx/layers/FrameMetrics.h	2016-08-26 05:53:17.000000000 +0000
@@ -56,6 +56,14 @@
     ePending,       // The scroll offset was updated on the main thread, but not
                     // painted, so the layer texture data is still at the old
                     // offset.
+    eUserAction,    // In an APZ repaint request, this means the APZ generated
+                    // the scroll position based on user action (the alternative
+                    // is eNone which means it's just request a repaint because
+                    // it got a scroll update from the main thread).
+    eRestore,       // The scroll offset was updated by the main thread, but as
+                    // a restore from history or after a frame reconstruction.
+                    // In this case, APZ can ignore the offset change if the
+                    // user has done an APZ scroll already.
 
     eSentinel       // For IPC use only
   };
@@ -246,6 +254,11 @@
     mScrollUpdateType = ePending;
   }
 
+  void SetRepaintDrivenByUserAction(bool aUserAction)
+  {
+    mScrollUpdateType = aUserAction ? eUserAction : eNone;
+  }
+
 public:
   void SetPresShellResolution(float aPresShellResolution)
   {
@@ -353,6 +366,12 @@
     mScrollGeneration = aScrollGeneration;
   }
 
+  void SetScrollOffsetRestored(uint32_t aScrollGeneration)
+  {
+    mScrollUpdateType = eRestore;
+    mScrollGeneration = aScrollGeneration;
+  }
+
   void SetSmoothScrollOffsetUpdated(int32_t aScrollGeneration)
   {
     mDoSmoothScroll = true;
diff -Nru firefox-49.0~b6+build1/gfx/thebes/gfxPlatform.cpp firefox-49.0~b7+build1/gfx/thebes/gfxPlatform.cpp
--- firefox-49.0~b6+build1/gfx/thebes/gfxPlatform.cpp	2016-08-23 06:51:08.000000000 +0000
+++ firefox-49.0~b7+build1/gfx/thebes/gfxPlatform.cpp	2016-08-26 05:53:17.000000000 +0000
@@ -501,7 +501,10 @@
 
     mSkiaGlue = nullptr;
 
-    uint32_t canvasMask = BackendTypeBit(BackendType::CAIRO) | BackendTypeBit(BackendType::SKIA);
+    uint32_t canvasMask = BackendTypeBit(BackendType::CAIRO);
+#ifdef USE_SKIA
+    canvasMask |= BackendTypeBit(BackendType::SKIA);
+#endif
     uint32_t contentMask = BackendTypeBit(BackendType::CAIRO);
     InitBackendPrefs(canvasMask, BackendType::CAIRO,
                      contentMask, BackendType::CAIRO);
diff -Nru firefox-49.0~b6+build1/ipc/chromium/src/base/pickle.cc firefox-49.0~b7+build1/ipc/chromium/src/base/pickle.cc
--- firefox-49.0~b6+build1/ipc/chromium/src/base/pickle.cc	2016-08-23 06:51:09.000000000 +0000
+++ firefox-49.0~b7+build1/ipc/chromium/src/base/pickle.cc	2016-08-26 05:53:19.000000000 +0000
@@ -19,10 +19,6 @@
 
 #include "nsDebug.h"
 
-#if !defined(RELEASE_BUILD) || defined(DEBUG)
-#define SENTINEL_CHECKING
-#endif
-
 //------------------------------------------------------------------------------
 
 static_assert(MOZ_ALIGNOF(Pickle::memberAlignmentType) >= MOZ_ALIGNOF(uint32_t),
@@ -437,25 +433,19 @@
   return iter->iter_.AdvanceAcrossSegments(buffers_, AlignInt(length) - length);
 }
 
+#ifdef MOZ_PICKLE_SENTINEL_CHECKING
 bool Pickle::ReadSentinel(PickleIterator* iter, uint32_t sentinel) const {
-#ifdef SENTINEL_CHECKING
   uint32_t found;
   if (!ReadUInt32(iter, &found)) {
     return false;
   }
   return found == sentinel;
-#else
-  return true;
-#endif
 }
 
 bool Pickle::WriteSentinel(uint32_t sentinel) {
-#ifdef SENTINEL_CHECKING
   return WriteUInt32(sentinel);
-#else
-  return true;
-#endif
 }
+#endif
 
 void Pickle::EndRead(PickleIterator& iter) const {
   DCHECK(iter.iter_.Done());
diff -Nru firefox-49.0~b6+build1/ipc/chromium/src/base/pickle.h firefox-49.0~b7+build1/ipc/chromium/src/base/pickle.h
--- firefox-49.0~b6+build1/ipc/chromium/src/base/pickle.h	2016-08-23 06:51:09.000000000 +0000
+++ firefox-49.0~b7+build1/ipc/chromium/src/base/pickle.h	2016-08-26 05:53:19.000000000 +0000
@@ -17,6 +17,10 @@
 #include "mozilla/BufferList.h"
 #include "mozilla/mozalloc.h"
 
+#if !defined(RELEASE_BUILD) || defined(DEBUG)
+#define MOZ_PICKLE_SENTINEL_CHECKING
+#endif
+
 class Pickle;
 
 class PickleIterator {
@@ -109,8 +113,14 @@
   // Use it for reading the object sizes.
   MOZ_MUST_USE bool ReadLength(PickleIterator* iter, int* result) const;
 
-  MOZ_MUST_USE bool ReadSentinel(PickleIterator* iter, uint32_t sentinel) const;
-
+  MOZ_MUST_USE bool ReadSentinel(PickleIterator* iter, uint32_t sentinel) const
+#ifdef MOZ_PICKLE_SENTINEL_CHECKING
+    ;
+#else
+  {
+    return true;
+  }
+#endif
   void EndRead(PickleIterator& iter) const;
 
   // Methods for adding to the payload of the Pickle.  These values are
@@ -173,8 +183,14 @@
   bool WriteBytes(const void* data, uint32_t data_len,
                   uint32_t alignment = sizeof(memberAlignmentType));
 
-  bool WriteSentinel(uint32_t sentinel);
-
+  bool WriteSentinel(uint32_t sentinel)
+#ifdef MOZ_PICKLE_SENTINEL_CHECKING
+    ;
+#else
+  {
+    return true;
+  }
+#endif
   int32_t* GetInt32PtrForTest(uint32_t offset);
 
   void InputBytes(const char* data, uint32_t length);
diff -Nru firefox-49.0~b6+build1/l10n/changesets firefox-49.0~b7+build1/l10n/changesets
--- firefox-49.0~b6+build1/l10n/changesets	2016-08-23 07:09:08.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/changesets	2016-08-26 06:07:01.000000000 +0000
@@ -1,91 +1,91 @@
 ach 492:6ed1a299cf50
 af 884:a2a61bde6775
-an 582:a0d637288894
-ar 2035:b150ba69c917
-as 717:531095e3904d
-ast 1570:d25db037a6f9
-az 621:2423c8143902
-be 1971:04a4235e5dfc
-bg 1403:326fb714d777
-bn-BD 1305:ae5f9f846bd4
-bn-IN 925:9bbf72b5be5b
-br 1640:4c754d183c5a
+an 583:9371c30dd442
+ar 2037:bd56c2b1b867
+as 718:87691b0f2d52
+ast 1572:aab5290533ce
+az 622:675223246ca3
+be 1973:f1edb6891732
+bg 1404:0ab6e4eccb91
+bn-BD 1306:0476ed4500ad
+bn-IN 926:4a504a5d884e
+br 1642:9ea3db317038
 bs 573:c2cbf84e2de1
-ca 2770:c3339353bfb0
-cak 501:808417c44319
-cs 4517:e6672545077d
-cy 1452:71c01eee0b32
-da 2550:5b1c9faafacb
-de 5263:dd020ee5795a
-dsb 675:3171da02de5d
-el 1591:afaf03ea4ed7
-en-GB 2227:9943ab11dcea
-en-ZA 575:eefa8569592d
-eo 1025:557585905426
-es-AR 2893:a7a7efaea19a
-es-CL 1340:1b7ac05df655
-es-ES 4582:a15db7c94be1
-es-MX 1179:1c3e4152eb10
-et 2057:5f1f9bf9e338
-eu 1924:71c054e4b676
-fa 1281:d9db7aebee23
-ff 588:1a4d06b0e815
-fi 2528:5c0dedce2a36
-fr 7576:b9e5f261feaa
-fy-NL 2991:6b302d5eddf8
-ga-IE 2139:50baecdcd9bc
-gd 1984:92444fde5885
-gl 3291:bf28f841e9c0
+ca 2772:401d87beeaeb
+cak 502:decdaf6844aa
+cs 4519:19985d5ca954
+cy 1454:3e9891edff01
+da 2552:5c620df3cd98
+de 5265:a973f8808a3d
+dsb 677:6d71ce248f55
+el 1592:3db3789bc0d6
+en-GB 2229:69c5c0de1cdb
+en-ZA 576:3a9f60da83a9
+eo 1028:c33ae6dc5be9
+es-AR 2895:bb3bd6a4486b
+es-CL 1342:684eb9268729
+es-ES 4584:0928c9984c35
+es-MX 1180:99e1a50aac0e
+et 2059:4ee68caed465
+eu 1926:0a9a20050ac7
+fa 1282:d2161b6d935d
+ff 589:f0559573868a
+fi 2530:4cd599b97e64
+fr 7578:e0fb54b66a46
+fy-NL 2993:ee85dec501f7
+ga-IE 2141:6f7381624b30
+gd 1986:4d1ad6f5ffd9
+gl 3293:be6f29e27235
 gn 225:88e0eecd56db
-gu-IN 1180:2e44a364add5
-he 1688:bb63426afab0
-hi-IN 1077:ca0dd937cc42
-hr 2057:f1451931e324
-hsb 842:7c9d7788d270
-hu 2858:2b6190004ebb
-hy-AM 1555:775519f2d8db
-id 1974:cfb8cfd27228
-is 1697:c59dbde0dad8
-it 6953:447e31e3aa13
-ja 2708:6fe0a63744ab
-ja-JP-mac 2235:9f666fe9f2a8
-kk 1091:da0f97e69c1e
+gu-IN 1181:994ad5df0c8e
+he 1690:0a153c750ce2
+hi-IN 1078:779e26b79ed1
+hr 2059:56cb4af862d5
+hsb 844:11709e28da3d
+hu 2860:86c2be8ceccf
+hy-AM 1557:d0c14dfff998
+id 1976:c01b79dc49e7
+is 1699:db1472c4f397
+it 6956:32c5df7e0cc8
+ja 2710:729187ceb5af
+ja-JP-mac 2236:f762ce6b7b3d
+kk 1092:75231a428eb7
 km 721:2a4aa779e53d
-kn 1052:283ae825d99f
-ko 2287:83526a5f72ea
-lij 769:4fb7ce25d8dc
-lt 3374:e54297d7fe18
-lv 1337:d1246ee66631
-mai 792:0820b6141f84
+kn 1053:d9a6b5cf64a0
+ko 2289:4c459dacec04
+lij 770:fdb3ad1d0fa6
+lt 3376:fb1447a41a65
+lv 1338:f84f43ac1ba0
+mai 793:e086f37ebff5
 mk 575:9793d2941b6c
-ml 962:d864d675f371
-mr 1081:34df992208e5
-ms 542:d13c92dbba8a
-nb-NO 3022:d3e0dc2345ab
-nl 5911:2906edd17670
-nn-NO 1826:0668591febad
-or 785:9121abac7557
-pa-IN 2099:9149342876b7
-pl 8979:cfb7b4771a5e
-pt-BR 2677:6a1d20ba687f
-pt-PT 5471:af383d19e047
-rm 1622:34a208a497d2
-ro 2327:8ee8e3335f8f
-ru 4487:edc116f93d36
-si 1438:6722790f67f9
-sk 4251:ad47b698f52f
-sl 2767:5d01d833a221
-son 849:0bdd95b32829
-sq 2209:7323257dfadf
-sr 1470:ccf9f1da192d
-sv-SE 5086:6c5c8d952c92
-ta 859:9f75389496d4
-te 920:d1073e222b6b
-th 1343:be119c0eca0e
-tr 2592:624b7849b513
-uk 3444:b8661a926b6b
-uz 590:49254d4f497d
-vi 1125:88956cb92ef5
-xh 751:bd3a829da2b1
-zh-CN 2752:7bff71bbd3b0
-zh-TW 2929:57041a6568c3
+ml 963:75d22a21a90a
+mr 1082:8dbe0c8dcc7e
+ms 543:a3871a524afb
+nb-NO 3024:ef7a597a0eee
+nl 5913:6198f979aac2
+nn-NO 1828:1b4b40246f5f
+or 786:f2a8287855c0
+pa-IN 2101:d6b6f254aabe
+pl 8981:d0ed2454baae
+pt-BR 2679:2822f40553d4
+pt-PT 5473:1e6f22b93789
+rm 1625:bf10609a47ff
+ro 2329:2dbd433a404a
+ru 4489:d73f09d89bb4
+si 1439:a72924013cec
+sk 4253:f922c7ee26e0
+sl 2770:0a2583b2d6dd
+son 850:36423ab3bc38
+sq 2211:4c46bb095204
+sr 1472:9c383dbe2c0f
+sv-SE 5088:6d8f3b78d0ac
+ta 860:46eb4efe6de7
+te 921:447e1b5206cc
+th 1344:02e3074464e8
+tr 2594:80823a664bef
+uk 3446:7130a399164c
+uz 591:ee99f9de823d
+vi 1126:a6cb3ce14e45
+xh 752:93a1d06c8293
+zh-CN 2754:b25b8fcf56d4
+zh-TW 2931:ccda9b8f0002
diff -Nru firefox-49.0~b6+build1/l10n/eo/browser/chrome/browser/preferences/donottrack.dtd firefox-49.0~b7+build1/l10n/eo/browser/chrome/browser/preferences/donottrack.dtd
--- firefox-49.0~b6+build1/l10n/eo/browser/chrome/browser/preferences/donottrack.dtd	2016-08-23 06:56:04.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/eo/browser/chrome/browser/preferences/donottrack.dtd	2016-08-26 05:57:15.000000000 +0000
@@ -7,7 +7,7 @@
 
 
 
-
+
 
 
 
diff -Nru firefox-49.0~b6+build1/l10n/eo/dom/chrome/dom/dom.properties firefox-49.0~b7+build1/l10n/eo/dom/chrome/dom/dom.properties
--- firefox-49.0~b6+build1/l10n/eo/dom/chrome/dom/dom.properties	2016-08-23 06:56:04.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/eo/dom/chrome/dom/dom.properties	2016-08-26 05:57:15.000000000 +0000
@@ -3,8 +3,8 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 KillScriptTitle=Averto: nerespondanta skripto
-KillScriptMessage=A script on this page may be busy, or it may have stopped responding. You can stop the script now, or you can continue to see if the script will complete.
-KillScriptWithDebugMessage=A script on this page may be busy, or it may have stopped responding. You can stop the script now, open the script in the debugger, or let the script continue.
+KillScriptMessage=Skripto en tiu ĉi paĝo povas esti okupita, aŭ ĝi eble ne plu respondas. Vi povas haltigi la skripton nun, aŭ vi povas daŭrigi kaj vidi ĉu la skripto finos sian taskon.
+KillScriptWithDebugMessage=Skripto en tiu ĉi paĝo povas esti okupita, aŭ ĝi eble ne plu respondas. Vi povas haltigi la skripton nun, malfermi ĝin en la sencimigilo aŭ lasi ĝin plufunkcii.
 KillScriptLocation=Skripto: %S
 StopScriptButton=Haltigi skripton
 DebugScriptButton=Sencimigi skripton
@@ -13,56 +13,56 @@
 JSURLLoadBlockedWarning=La klopodo ŝargi javascript-an URLon el iu servilo en la fenestro kiu montras enhavon de alia servilo estis blokita de la sekureca administranto.
 WindowCloseBlockedWarning=Skriptoj ne povas fermi fenestrojn, kiuj ne estis malfermitaj de skripto.
 OnBeforeUnloadTitle=Ĉu vi certas?
-OnBeforeUnloadMessage=This page is asking you to confirm that you want to leave - data you have entered may not be saved.
+OnBeforeUnloadMessage=Tiu ĉi paĝo petas al vi konfirmi ke vi povas foriri. Enigitaj datumoj eble ne estos konservitaj.
 OnBeforeUnloadStayButton=Resti en la paĝo
 OnBeforeUnloadLeaveButton=Forlasi paĝon
 UnexpectedCanvasVariantStyle=canvas: an attempt to set strokeStyle or fillStyle to a value that is neither a string, a CanvasGradient, or a CanvasPattern was ignored.
-EmptyGetElementByIdParam=Empty string passed to getElementById().
+EmptyGetElementByIdParam=Malplena teksto pasigita al getElementById().
 LowMemoryTitle=Averto: malmulta memoro
-LowMemoryMessage=A script on this page has been stopped due to a low memory condition.
+LowMemoryMessage=Skripto en tiu ĉi paĝo estis haltigita pro manko de memoro.
 SpeculationFailed=An unbalanced tree was written using document.write() causing data from the network to be reparsed. For more information https://developer.mozilla.org/en/Optimizing_Your_Pages_for_Speculative_Parsing
 DocumentWriteIgnored=A call to document.write() from an asynchronously-loaded external script was ignored.
-FormValidationTextTooLong=Please shorten this text to %S characters or less (you are currently using %S characters).
-FormValidationValueMissing=Please fill out this field.
-FormValidationCheckboxMissing=Please check this box if you want to proceed.
-FormValidationRadioMissing=Please select one of these options.
-FormValidationFileMissing=Please select a file.
-FormValidationSelectMissing=Please select an item in the list.
-FormValidationInvalidEmail=Please enter an email address.
-FormValidationInvalidURL=Please enter a URL.
-FormValidationPatternMismatch=Please match the requested format.
+FormValidationTextTooLong=Bonvolu mallongigi tiun ĉi tekston tiel ke ĝi havos maksimume %S signojn (vi nun uzas %S signojn).
+FormValidationValueMissing=Bonvolu plenigi tiun ĉi kampon.
+FormValidationCheckboxMissing=Bonvolu marki tiun ĉi markobutonon se vi volas daŭrigi.
+FormValidationRadioMissing=Bonvolu elekti unu el tiuj ĉi elektebloj.
+FormValidationFileMissing=Bonvolu elekti dosieron.
+FormValidationSelectMissing=Bonvolu elekti elementon en la listo.
+FormValidationInvalidEmail=Bonvolu tajpi retpoŝtan adreson.
+FormValidationInvalidURL=Bonvolu tajpi retadreson.
+FormValidationPatternMismatch=Bonvolu uzi la postulitan formon.
 # LOCALIZATION NOTE (FormValidationPatternMismatchWithTitle): %S is the (possibly truncated) title attribute value.
-FormValidationPatternMismatchWithTitle=Please match the requested format: %S.
+FormValidationPatternMismatchWithTitle=Bonvolu uzi la postulitan formon: %S.
 # LOCALIZATION NOTE (FormValidationNumberRangeOverflow): %S is a number.
-FormValidationNumberRangeOverflow=Please select a value that is no more than %S.
+FormValidationNumberRangeOverflow=Bonvolu elekti valoron pli etan ol %S.
 # LOCALIZATION NOTE (FormValidationDateRangeOverflow): %S is a date.
-FormValidationDateRangeOverflow=Please select a value that is no later than %S.
+FormValidationDateRangeOverflow=Bonvolu elekti daton antaŭ %S.
 # LOCALIZATION NOTE (FormValidationTimeRangeOverflow): %S is a time.
-FormValidationTimeRangeOverflow=Please select a value that is no later than %S.
+FormValidationTimeRangeOverflow=Bonvolu elekti horon antaŭ %S.
 # LOCALIZATION NOTE (FormValidationNumberRangeUnderflow): %S is a number.
-FormValidationNumberRangeUnderflow=Please select a value that is no less than %S.
+FormValidationNumberRangeUnderflow=Bonvolu elekti valoron minimume same grandan kiel %S.
 # LOCALIZATION NOTE (FormValidationDateRangeUnderflow): %S is a date.
-FormValidationDateRangeUnderflow=Please select a value that is no earlier than %S.
+FormValidationDateRangeUnderflow=Bonvolu elekti daton ekde %S.
 # LOCALIZATION NOTE (FormValidationTimeRangeUnderflow): %S is a time.
-FormValidationTimeRangeUnderflow=Please select a value that is no earlier than %S.
+FormValidationTimeRangeUnderflow=Bonvolu elekti horon ekde %S.
 # LOCALIZATION NOTE (FormValidationStepMismatch): both %S can be a number, a date or a time.
 FormValidationStepMismatch=Bonvolu elekti validan valoron. La du plej proksimaj validaj valoroj estas %S kaj %S.
 # LOCALIZATION NOTE (FormValidationStepMismatchOneValue): %S can be a number, a date or a time. This is called instead of FormValidationStepMismatch when the second value is the same as the first.
 FormValidationStepMismatchOneValue=Bonvolu elekti validan valoron. La plej proksima valoro estas %S.
 FormValidationBadInputNumber=Bonvolu tajpi numeron.
-GetAttributeNodeWarning=Use of getAttributeNode() is deprecated. Use getAttribute() instead.
-SetAttributeNodeWarning=Use of setAttributeNode() is deprecated. Use setAttribute() instead.
-GetAttributeNodeNSWarning=Use of getAttributeNodeNS() is deprecated. Use getAttributeNS() instead.
-SetAttributeNodeNSWarning=Use of setAttributeNodeNS() is deprecated. Use setAttributeNS() instead.
-RemoveAttributeNodeWarning=Use of removeAttributeNode() is deprecated. Use removeAttribute() instead.
-CreateAttributeWarning=Use of document.createAttribute() is deprecated. Use element.setAttribute() instead.
-CreateAttributeNSWarning=Use of document.createAttributeNS() is deprecated. Use element.setAttributeNS() instead.
+GetAttributeNodeWarning=Estas evitinde uzi getAttributeNode(). Anstataŭe uzu getAttribute().
+SetAttributeNodeWarning=Estas evitinde uzi setAttributeNode(). Anstataŭe uzu setAttribute() instead.
+GetAttributeNodeNSWarning=Estas evitinde uzi getAttributeNodeNS(). Anstataŭe uzu getAttributeNS().
+SetAttributeNodeNSWarning=Estas evitinde uzi setAttributeNodeNS(). Anstataŭe uzu setAttributeNS().
+RemoveAttributeNodeWarning=Estas evitinde uzi removeAttributeNode(). Anstataŭe uzu removeAttribute().
+CreateAttributeWarning=Estas evitinde uzi document.createAttribute(). Anstataŭe uzu element.setAttribute().
+CreateAttributeNSWarning=Estas evitinde uzi document.createAttributeNS(). Anstataŭe uzu element.setAttributeNS().
 NodeValueWarning=Use of attributes' nodeValue attribute is deprecated. Use value instead.
 TextContentWarning=Use of attributes' textContent attribute is deprecated. Use value instead.
-EnablePrivilegeWarning=Use of enablePrivilege is deprecated.  Please use code that runs with the system principal (e.g. an extension) instead.
-nsIJSONDecodeDeprecatedWarning=nsIJSON.decode is deprecated.  Please use JSON.parse instead.
-nsIJSONEncodeDeprecatedWarning=nsIJSON.encode is deprecated.  Please use JSON.stringify instead.
-nsIDOMWindowInternalWarning=Use of nsIDOMWindowInternal is deprecated. Use nsIDOMWindow instead.
+EnablePrivilegeWarning=Estas evitinde uzi enablePrivilege.  Bonvolu uzi anstataŭe kodon kiu funkcias kun la ĉefa sistemo (ekzemple etendaĵo).
+nsIJSONDecodeDeprecatedWarning=nsIJSON.decode estas evitinda.  Bonvolu anstataŭe uzi JSON.parse.
+nsIJSONEncodeDeprecatedWarning=nsIJSON.encode estas evitinda.  Bonvolu anstataŭe uzi JSON.stringify.
+nsIDOMWindowInternalWarning=Estas evitinde uzi nsIDOMWindowInternal. Bonvolu anstataŭe uzi nsIDOMWindow.
 FullscreenDeniedDisabled=Request for fullscreen was denied because Fullscreen API is disabled by user preference.
 FullscreenDeniedFocusedPlugin=Request for fullscreen was denied because a windowed plugin is focused.
 FullscreenDeniedHidden=Request for fullscreen was denied because the document is no longer visible.
@@ -207,7 +207,7 @@
 # LOCALIZATION NOTE: Do not translate "ServiceWorker", "Service-Worker-Allowed" or "HTTP". %1$S and %2$S are URLs.
 ServiceWorkerScopePathMismatch=Ne eblis registri ServiceWorker: la vojo de la provizita amplekso '%1$S' ne estas sub la maksimuma permesata amplekso '%2$S'. Alĝustigu la amplekson, movu la skripton de Service Worker, aŭ uzu la HTTP mesaĝkapon Service-Worker-Allowed por permesi la amplekson.
 ExecCommandCutCopyDeniedNotInputDriven=document.execCommand('cut'/'copy') estis rifuzita ĉar ĝi ne estis vokita el mallongdaŭra traktilo de evento produktita de uzanto.
-ManifestShouldBeObject=Manifest should be an object.
+ManifestShouldBeObject=Manifesto devus esti objekto.
 ManifestScopeURLInvalid=The scope URL is invalid.
 ManifestScopeNotSameOrigin=The scope URL must be same origin as document.
 ManifestStartURLOutsideScope=The start URL is outside the scope, so the scope is invalid.
diff -Nru firefox-49.0~b6+build1/l10n/es-CL/devtools/client/netmonitor.dtd firefox-49.0~b7+build1/l10n/es-CL/devtools/client/netmonitor.dtd
--- firefox-49.0~b6+build1/l10n/es-CL/devtools/client/netmonitor.dtd	2016-08-23 06:56:32.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/es-CL/devtools/client/netmonitor.dtd	2016-08-26 05:57:32.000000000 +0000
@@ -381,7 +381,7 @@
 
 
-
+
 
 
diff -Nru firefox-49.0~b6+build1/l10n/es-CL/devtools/client/netmonitor.properties firefox-49.0~b7+build1/l10n/es-CL/devtools/client/netmonitor.properties
--- firefox-49.0~b6+build1/l10n/es-CL/devtools/client/netmonitor.properties	2016-08-23 06:56:32.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/es-CL/devtools/client/netmonitor.properties	2016-08-26 05:57:32.000000000 +0000
@@ -120,12 +120,12 @@
 
 # LOCALIZATION NOTE (requestHeaders): This is the label displayed
 # in the network details headers tab identifying the request headers.
-requestHeaders=Solicitar cabeceras
+requestHeaders=Cabeceras de solicitud
 
 # LOCALIZATION NOTE (requestHeadersFromUpload): This is the label displayed
 # in the network details headers tab identifying the request headers from
 # the upload stream of a POST request's body.
-requestHeadersFromUpload=Solicitar cabeceras del flujo de subida
+requestHeadersFromUpload=Cabeceras de solicitud del flujo de subida
 
 # LOCALIZATION NOTE (responseHeaders): This is the label displayed
 # in the network details headers tab identifying the response headers.
diff -Nru firefox-49.0~b6+build1/l10n/it/browser/searchplugins/eBay-it.xml firefox-49.0~b7+build1/l10n/it/browser/searchplugins/eBay-it.xml
--- firefox-49.0~b6+build1/l10n/it/browser/searchplugins/eBay-it.xml	2016-08-23 07:01:29.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/it/browser/searchplugins/eBay-it.xml	1970-01-01 00:00:00.000000000 +0000
@@ -1,14 +0,0 @@
-
-
-
-eBay
-eBay - Aste on-line
-ISO-8859-1
-data:image/x-icon;base64,AAABAAIAEBAAAAAAAAB6AQAAJgAAACAgAAAAAAAAQgMAAKABAACJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAFBSURBVDjLtZPdK0MBGIf3J5Babhx3rinFBWuipaUskX9DYvkopqgV90q5UJpyp0OKrUWM2VrRsS9D0zZKHGaOnW1nj4vtypVtPPe/533r9746QAAOAJXfo5Yzgg44pHrcugon/6Sgo0b+XuAOZ2iZiVQmyPoDpIwmUkYTzqM7GsdDdC7F6Lbf8pzOkfWOouzqeZem2b+2AqAV8zjD8yVBqqcf2b7C66yNiMGMfixIQSvi8Mp0LEbR5ADq1QSKWM+Gx0RC9nOZ2GLzwlIWdPWiuNzk4w/EpThNkyEAXKEP2ud8KGId2sspilhPMrmNwzfCuqePr/xbSfC5I/I0MMSj2YJ3z49gDdO2cEOrLUowJpE9G0QRG1ClKbR0EIdvmOPYcnUtnN+vsnZiQC1k/qnGagQ1n3LNzySUJZVskitnmr8BlQG7T2hvgxsAAAAASUVORK5CYIKJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAAMJSURBVFjD7ZddSFNhGMeHXXQTZFFCWfR1pRhUECQlBdWVToo+6KYu1KigtDASG5qUfZgFZvahEDosECPDktKZS1FL+1DRnEvdUptjug91X2dnZzv/3vO6OZbWnR4v9sADL+fs7P97/s/znu2VAJD4UkpSSdKG+QubTyPBr+sXz8XCR64fIAHihVTis0SsUAoAVhEBrBKIHCGAEMB/ARi3F5LkbpS2WMRzYEEBXC2tsD6T03R9agsCGLNyqPw6CXmrBT06JvhbPHZwmkdwtR0B138PPKOHgzXD5jLAy3tmibo4K9weZwDAazJj/FQKRnfugfHMeRiTz0K3Ixam1HQKcPC+Fisu9NK1P08Uj4DleHgMdXC+WQ7nu3UEOhFMfTQcVUvQ1H4IN2sj8H2k7K+2TqCc3GseyA8AmDOzMBq7D9bS8sAr6nEJdNt3UbHVF1XQGtmZew8bTPT6tWoD3KpsUvlR8NxUoEICMvl6KQo+xqCwcRs4T8Ax5c8bFExjbAgAjO7aS8VsLypgq3g5nWStjztAhWRVhqAqeB6IuKTClkw1eNYEbrCQQBwD8yGGOsAooogLYejQPKBi7UPF9DkH+ezd+o141ZkUPAOC+L9SAMivNc7q46YMNSLTe4n1kaQF4XD3ZIDTPgU3XEYciKcAHrsGJS1xKFBGgyVzouiT4VbdGhjt/cEA5isyKsaz7jl3we7bg7Rqf6j0LoSldON4wWcqJDgQNGTN++l13vELA+MK6kKd6iryFOvxtidt9i5gO7owdjKJQliflNAU1pas6xQgnAzg1ux+lJEdILixNr0Pq9JUUA8NwVG9DM73G0jlcnh+V4BpjIWzJmIGQIjnXw5TiDuKSEwxurm3ITc8DNO51BnrLbIcsrW0dNA6RxgUKU1UdGVqLy5X6qGzTLvlnewiBZyGs3Yz6X8UeaYI3olvZDhzwLumZ+eHvooCCC0Q5VUsb4unwycM4YIDqA01tPqmgbzQr2EIYPECiPm33LYoDiZSsY9moh9O/Znoa4d9HkXtPg2pX/cPKCoRQ+ocZa4AAAAASUVORK5CYII=
-
-  
-
-http://search.ebay.it/
-
diff -Nru firefox-49.0~b6+build1/l10n/it/browser/searchplugins/list.txt firefox-49.0~b7+build1/l10n/it/browser/searchplugins/list.txt
--- firefox-49.0~b6+build1/l10n/it/browser/searchplugins/list.txt	2016-08-23 07:01:29.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/it/browser/searchplugins/list.txt	2016-08-26 06:00:51.000000000 +0000
@@ -1,6 +1,5 @@
 amazon-it
 bing
-eBay-it
 google
 hoepli
 wikipedia-it
diff -Nru firefox-49.0~b6+build1/l10n/lij/browser/chrome/browser/aboutCertError.dtd firefox-49.0~b7+build1/l10n/lij/browser/chrome/browser/aboutCertError.dtd
--- firefox-49.0~b6+build1/l10n/lij/browser/chrome/browser/aboutCertError.dtd	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/browser/chrome/browser/aboutCertError.dtd	2016-08-26 06:01:47.000000000 +0000
@@ -27,7 +27,10 @@
 
 
 
-
+
+
+
+
 
 
 
diff -Nru firefox-49.0~b6+build1/l10n/lij/browser/chrome/browser/aboutDialog.dtd firefox-49.0~b7+build1/l10n/lij/browser/chrome/browser/aboutDialog.dtd
--- firefox-49.0~b6+build1/l10n/lij/browser/chrome/browser/aboutDialog.dtd	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/browser/chrome/browser/aboutDialog.dtd	2016-08-26 06:01:47.000000000 +0000
@@ -13,7 +13,7 @@
 
 
 
-
+
 
 
 
diff -Nru firefox-49.0~b6+build1/l10n/lij/browser/chrome/browser/aboutHome.dtd firefox-49.0~b7+build1/l10n/lij/browser/chrome/browser/aboutHome.dtd
--- firefox-49.0~b6+build1/l10n/lij/browser/chrome/browser/aboutHome.dtd	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/browser/chrome/browser/aboutHome.dtd	2016-08-26 06:01:47.000000000 +0000
@@ -26,7 +26,6 @@
 
 
 
-
 
 
 
diff -Nru firefox-49.0~b6+build1/l10n/lij/browser/chrome/browser/browser.dtd firefox-49.0~b7+build1/l10n/lij/browser/chrome/browser/browser.dtd
--- firefox-49.0~b6+build1/l10n/lij/browser/chrome/browser/browser.dtd	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/browser/chrome/browser/browser.dtd	2016-08-26 06:01:47.000000000 +0000
@@ -503,7 +503,7 @@
 
 
 
-
+
 
 
 
@@ -724,11 +724,7 @@
 
 
 
-
-
-
-
-
+
 
 
 
@@ -762,8 +758,6 @@
 
 
 
-
-
 
 
 
@@ -805,8 +799,7 @@
 
 
 
-
-
+
 
 
 
diff -Nru firefox-49.0~b6+build1/l10n/lij/browser/chrome/browser/browser-pocket.properties firefox-49.0~b7+build1/l10n/lij/browser/chrome/browser/browser-pocket.properties
--- firefox-49.0~b6+build1/l10n/lij/browser/chrome/browser/browser-pocket.properties	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/browser/chrome/browser/browser-pocket.properties	1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-addtags = Azonzi etichette
-alreadyhaveacct = Ti gh'æ za 'n account registrou in sce Pocket?
-continueff = Vanni avanti con Firefox
-errorgeneric = Gh'æ stæto 'n'erô into sarvâ in Pocket.
-learnmore = Atre informaçioin
-loginnow = Açendi
-maxtaglength = A longhessa mascima pe-e etichette a l'é de 25 carateri
-mustbeconnected = Ti devi ese conesso a l'Internet pe sarvâ in Pocket. Verifica a conescion e preuva torna.
-onlylinkssaved = Ti peu solo sarvâ colegamenti
-pagenotsaved = Pagina no atrovâ
-pageremoved = Pagina scancelâ
-pagesaved = Sarvâ in Pocket
-processingremove = Scancello a pagina…
-processingtags = Sarvo e etichette…
-removepage = Scancella pagina
-save = Sarva
-saving = Son apreuvo a sarvâ…
-signupemail = Acedi con l'email
-signuptosave = Registrate in sce Pocket. L'é de badda.
-suggestedtags = Etichete consigiæ
-tagline = Sarva articoli e video da Firefox pe veddile in sce Pocket da qualonque dispoxitivo e in qualonque momento.
-taglinestory_one = Sciacca o pomello Pocket pe sarvâ qualonque articolo, video ò pagina da Firefox.
-taglinestory_two = Veddi in Pocket da qualonque dispoxitivo e in qualonque momento.
-tagssaved = Azonte etichette
-signinfirefox = Acedi con Firefox
-signupfirefox = Registrate con Firefox
-viewlist = Veddi elenco
diff -Nru firefox-49.0~b6+build1/l10n/lij/browser/chrome/browser/browser.properties firefox-49.0~b7+build1/l10n/lij/browser/chrome/browser/browser.properties
--- firefox-49.0~b6+build1/l10n/lij/browser/chrome/browser/browser.properties	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/browser/chrome/browser/browser.properties	2016-08-26 06:01:47.000000000 +0000
@@ -414,9 +414,6 @@
 e10s.offerPopup.enableAndRestart.accesskey = A
 e10s.offerPopup.noThanks.label = No graçie
 e10s.offerPopup.noThanks.accesskey = N
-e10s.postActivationInfobar.message = Oua ti contriboisci a-o test da modalitæ moltiprocesso de %S. No ascordâ de segnalâ tutti i problemi riscontræ.
-e10s.postActivationInfobar.learnMore.label = Atre informaçioin
-e10s.postActivationInfobar.learnMore.accesskey = U
 e10s.accessibilityNotice.mainMessage2 = O sopòrto pe-e fonçioin de acessibilitæ a l'é dizativâ in parte pe problemi de conpatibilitæ con e neuve verscioin de %S.
 e10s.accessibilityNotice.acceptButton.label = Va ben
 e10s.accessibilityNotice.acceptButton.accesskey = V
@@ -572,10 +569,9 @@
 appMenuRemoteTabs.mobilePromo = Installa %1$S ò %2$S.
 appMenuRemoteTabs.mobilePromo.android = Firefox pe Android
 appMenuRemoteTabs.mobilePromo.ios = Firefox pe iOS
-certErrorDetails.label = %1$S\r\n\r\n%2$S\r\n\r\nHTTP Strict Transport Security: %3$S\r\nHTTP Public Key Pinning: %4$S\r\n\r\nCadena di certificati:\r\n\r\n%5$S
 tabgroups.migration.anonGroup = Gruppo %S
 tabgroups.migration.tabGroupBookmarkFolderName = Gruppi de feuggi
 weakCryptoOverriding.message = Se conseggia de no inserî paròlle segrete, dæti de carte de credito ò informaçioin personali in sto scito.%0.S
-
-
-
+certErrorDetailsCertChain.label = Cadenna de certificati:
+certErrorDetailsHSTS.label = HTTP Strict Transport Security: %S
+certErrorDetailsKeyPinning.label = HTTP Public Key Pinning: %S
diff -Nru firefox-49.0~b6+build1/l10n/lij/browser/chrome/browser/customizableui/customizableWidgets.properties firefox-49.0~b7+build1/l10n/lij/browser/chrome/browser/customizableui/customizableWidgets.properties
--- firefox-49.0~b6+build1/l10n/lij/browser/chrome/browser/customizableui/customizableWidgets.properties	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/browser/chrome/browser/customizableui/customizableWidgets.properties	2016-08-26 06:01:47.000000000 +0000
@@ -51,8 +51,6 @@
 devtools-webide-button2.tooltiptext = Arvi WebIDE (%S)
 e10s-button.label = Neuvo barcon no e10s
 e10s-button.tooltiptext = Arvi 'n neuvo barcon no e10s
-pocket-button.label = Pocket
-pocket-button.tooltiptext = Sarva in Pocket
 loop-call-button3.label = Hello
 loop-call-button3.tooltiptext2 = Navega in sta pagina con 'n amigo
 loop-call-button3-pb.tooltiptext = %S o no gh'é into mòddo Navegaçion privâ
@@ -60,8 +58,6 @@
 panic-button.tooltiptext = Scancella quarche informaçion da stöia da navegaçion
 social-share-button.label = Condividdi pagina\u00AD
 social-share-button.tooltiptext = Condividdi sta pagina
-web-apps-button.label = App
-web-apps-button.tooltiptext = Descòvri neuve app
 loop-call-button3-error.tooltiptext = Erô
 loop-call-button3-donotdisturb.tooltiptext = No ronpime
 loop-call-button3-screensharing.tooltiptext = O schermo o l'é condivizo
diff -Nru firefox-49.0~b6+build1/l10n/lij/browser/extensions/pocket/pocket.properties firefox-49.0~b7+build1/l10n/lij/browser/extensions/pocket/pocket.properties
--- firefox-49.0~b6+build1/l10n/lij/browser/extensions/pocket/pocket.properties	1970-01-01 00:00:00.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/browser/extensions/pocket/pocket.properties	2016-08-26 06:01:47.000000000 +0000
@@ -0,0 +1,31 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+addtags = Azonzi etichette
+alreadyhaveacct = Ti gh'æ za 'n account registrou in sce Pocket?
+continueff = Vanni avanti con Firefox
+errorgeneric = Gh'æ stæto 'n'erô into sarvâ in Pocket.
+learnmore = Atre informaçioin
+loginnow = Açendi
+maxtaglength = A longhessa mascima pe-e etichette a l'é de 25 carateri
+mustbeconnected = Ti devi ese conesso a l'Internet pe sarvâ in Pocket. Verifica a conescion e preuva torna.
+onlylinkssaved = Ti peu solo sarvâ colegamenti
+pagenotsaved = Pagina no atrovâ
+pageremoved = Pagina scancelâ
+pagesaved = Sarvâ in Pocket
+processingremove = Scancello a pagina…
+processingtags = Sarvo e etichette…
+removepage = Scancella pagina
+save = Sarva
+saving = Son apreuvo a sarvâ…
+signupemail = Acedi con l'email
+signuptosave = Registrate in sce Pocket. L'é de badda.
+suggestedtags = Etichete consigiæ
+tagline = Sarva articoli e video da Firefox pe veddile in sce Pocket da qualonque dispoxitivo e in qualonque momento.
+taglinestory_one = Sciacca o pomello Pocket pe sarvâ qualonque articolo, video ò pagina da Firefox.
+taglinestory_two = Veddi in Pocket da qualonque dispoxitivo e in qualonque momento.
+tagssaved = Azonte etichette
+signinfirefox = Acedi con Firefox
+signupfirefox = Registrate con Firefox
+viewlist = Veddi elenco
diff -Nru firefox-49.0~b6+build1/l10n/lij/browser/searchplugins/eBay-it.xml firefox-49.0~b7+build1/l10n/lij/browser/searchplugins/eBay-it.xml
--- firefox-49.0~b6+build1/l10n/lij/browser/searchplugins/eBay-it.xml	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/browser/searchplugins/eBay-it.xml	1970-01-01 00:00:00.000000000 +0000
@@ -1,14 +0,0 @@
-
-
-
-eBay
-eBay - Aste on-line
-ISO-8859-1
-data:image/x-icon;base64,AAABAAIAEBAAAAAAAAB6AQAAJgAAACAgAAAAAAAAQgMAAKABAACJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAFBSURBVDjLtZPdK0MBGIf3J5Babhx3rinFBWuipaUskX9DYvkopqgV90q5UJpyp0OKrUWM2VrRsS9D0zZKHGaOnW1nj4vtypVtPPe/533r9746QAAOAJXfo5Yzgg44pHrcugon/6Sgo0b+XuAOZ2iZiVQmyPoDpIwmUkYTzqM7GsdDdC7F6Lbf8pzOkfWOouzqeZem2b+2AqAV8zjD8yVBqqcf2b7C66yNiMGMfixIQSvi8Mp0LEbR5ADq1QSKWM+Gx0RC9nOZ2GLzwlIWdPWiuNzk4w/EpThNkyEAXKEP2ud8KGId2sspilhPMrmNwzfCuqePr/xbSfC5I/I0MMSj2YJ3z49gDdO2cEOrLUowJpE9G0QRG1ClKbR0EIdvmOPYcnUtnN+vsnZiQC1k/qnGagQ1n3LNzySUJZVskitnmr8BlQG7T2hvgxsAAAAASUVORK5CYIKJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAAMJSURBVFjD7ZddSFNhGMeHXXQTZFFCWfR1pRhUECQlBdWVToo+6KYu1KigtDASG5qUfZgFZvahEDosECPDktKZS1FL+1DRnEvdUptjug91X2dnZzv/3vO6OZbWnR4v9sADL+fs7P97/s/znu2VAJD4UkpSSdKG+QubTyPBr+sXz8XCR64fIAHihVTis0SsUAoAVhEBrBKIHCGAEMB/ARi3F5LkbpS2WMRzYEEBXC2tsD6T03R9agsCGLNyqPw6CXmrBT06JvhbPHZwmkdwtR0B138PPKOHgzXD5jLAy3tmibo4K9weZwDAazJj/FQKRnfugfHMeRiTz0K3Ixam1HQKcPC+Fisu9NK1P08Uj4DleHgMdXC+WQ7nu3UEOhFMfTQcVUvQ1H4IN2sj8H2k7K+2TqCc3GseyA8AmDOzMBq7D9bS8sAr6nEJdNt3UbHVF1XQGtmZew8bTPT6tWoD3KpsUvlR8NxUoEICMvl6KQo+xqCwcRs4T8Ax5c8bFExjbAgAjO7aS8VsLypgq3g5nWStjztAhWRVhqAqeB6IuKTClkw1eNYEbrCQQBwD8yGGOsAooogLYejQPKBi7UPF9DkH+ezd+o141ZkUPAOC+L9SAMivNc7q46YMNSLTe4n1kaQF4XD3ZIDTPgU3XEYciKcAHrsGJS1xKFBGgyVzouiT4VbdGhjt/cEA5isyKsaz7jl3we7bg7Rqf6j0LoSldON4wWcqJDgQNGTN++l13vELA+MK6kKd6iryFOvxtidt9i5gO7owdjKJQliflNAU1pas6xQgnAzg1ux+lJEdILixNr0Pq9JUUA8NwVG9DM73G0jlcnh+V4BpjIWzJmIGQIjnXw5TiDuKSEwxurm3ITc8DNO51BnrLbIcsrW0dNA6RxgUKU1UdGVqLy5X6qGzTLvlnewiBZyGs3Yz6X8UeaYI3olvZDhzwLumZ+eHvooCCC0Q5VUsb4unwycM4YIDqA01tPqmgbzQr2EIYPECiPm33LYoDiZSsY9moh9O/Znoa4d9HkXtPg2pX/cPKCoRQ+ocZa4AAAAASUVORK5CYII=
-
-  
-
-http://search.ebay.it/
-
diff -Nru firefox-49.0~b6+build1/l10n/lij/browser/searchplugins/list.txt firefox-49.0~b7+build1/l10n/lij/browser/searchplugins/list.txt
--- firefox-49.0~b6+build1/l10n/lij/browser/searchplugins/list.txt	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/browser/searchplugins/list.txt	2016-08-26 06:01:47.000000000 +0000
@@ -1,7 +1,6 @@
 amazon-it
 bing
-eBay-it
 google
 paroledigenova-lij
 wikipedia-lij
-yahoo-it
\ No newline at end of file
+yahoo-it
diff -Nru firefox-49.0~b6+build1/l10n/lij/browser/searchplugins/wikipedia-lij.xml firefox-49.0~b7+build1/l10n/lij/browser/searchplugins/wikipedia-lij.xml
--- firefox-49.0~b6+build1/l10n/lij/browser/searchplugins/wikipedia-lij.xml	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/browser/searchplugins/wikipedia-lij.xml	2016-08-26 06:01:47.000000000 +0000
@@ -7,8 +7,6 @@
 Wikipedia, l'enciclopedia libera
 UTF-8
 data:image/x-icon;base64,AAABAAIAEBAAAAAAAAA4AQAAJgAAACAgAAAAAAAAJAMAAGQBAACJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAEFSURBVDjLxZPRDYJAEESJoQjpgBoM/9IBtoAl4KcUQQlSAjYgJWAH0gPmyNtkzEEuxkQTPzawc3Ozc3MQTc/JfVPR/wW6a+eKQ+Hyfe54B2wvrfXVqXLDfTCMd3j0VHksrTcH9bl2aZq+BCgEwCCPj9E4TdPYGj0C9CYAKdkmBrIIxiIYbvpbb2sSl8AiA+ywAbJE5YLpCImLU/WRDyIAWRgu4k1s4v50ODru4haYSCk4ntkuM0wcMAINXiPKTJQ9CfgB40phBr8DyFjGKkKEhYhCY4iCDgpAYAM2EZBlhJnsZxQUYBNkSkfBvjDd0ttPeR0mxREQ+OhfYOJ6EmL+l/qzn2kGli9cAF3BOfkAAAAASUVORK5CYIKJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAAIKSURBVFjD7ZdBSgNRDIYLguAB7FLwAkXwBl0JgiDYjQcY8ARduBJKu3I5C0EoWDxAT9AL9AK9QBeCIHQlCM/3DZOSmeZNZ2r1bQyEGV7yXv7kJZlJq6XIOXfs+crzwPPTnvnR863n05ZFufDD/T595Q4eauM37u/pWYwfeX53cegcABcuHg0AkEQE8AKAu4gAXv8BrAEMh0PXbrddt9t1vV4v406nk62laeqm02n2LjKYIuK5WCyyfeiLDF32yLn6TJ5mBFarlev3+9nBMMqsabkYhmezWcEd2ctTE/tYBwhgt14BhtmAV2VaLpdrAHioCW+VdwWy9IMAUBQjJcQFTwGqvcTD+Xy+oc8askZJyAYrnKEokCeWLpQkSSZvBIANYgSDVVEQQJaeyHQu1QIgiQNb6AmrTtaQ9+RFSLa1D4iXgfsrVITloeSFFZlaAEjAUMaXo2DJWQtVRe1OKF5aJUkf0NdglXO5VzQGoI2USwwD3LEl590CtdO3QBoT5WSFV+Q63Oha17ITgMlkslGSGBWPdeNiDR2SL1B6zQFINmOAkFOW5eTSURCdvX6OdUlapaWjsKX0dgOg26/VWHSUKhrPz35ISKwq76R9Wx+kKgC1f0o5mISsypUG3kPj2L/lDzKYvEUwzoh2JtPRdQQAo1jD6afne88H1oTMeH6ZK+x7PB/lQ/CJtvkNEgDh1dr/bVYAAAAASUVORK5CYII=
-data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjA3MkMyRDY5QjUyNTExRTNCNzdEOTU4N0NCMjI3MEFDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjA3MkMyRDZBQjUyNTExRTNCNzdEOTU4N0NCMjI3MEFDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDcyQzJENjdCNTI1MTFFM0I3N0Q5NTg3Q0IyMjcwQUMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDcyQzJENjhCNTI1MTFFM0I3N0Q5NTg3Q0IyMjcwQUMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7lkNGzAAAELklEQVR42uyYa4hUZRjHn3Nm13X2Mu6urtqutrTeVjRUQikoKUoQLIy8hybiBcVMRdFASPwgQTczsCiMvFYGffBDeANFUDEydc31viheat2dyVndmdmdy57+7/I/+HCcKaX1Q3Re+LHnOe9z3sv/PM/znlnLcRz5vzdb/OaL4Ivgi3C/WV01UCAQkNraWqmpGSCVVVWSl5cnZaXl4jgZaWpugp0viURcwpGIJJMpSba1SY+yUlmy5B3ZuGGDXGlokJKSYkmn0pJOp6UDBbsl2iJFRYVi25bEYjFpwzOtra3S3t4umUxGuqqo53WVCGZR9fX1nZgWDAaxgWIJhUpASGyIFLBtSWKDhcFCScTjuE5JXV2dhMNhSaVS2Kwt0WgUYiU6hTCiRSLNGM2BnYF4yccWCWPB6yAC9oGzYC2Iga/pNx/kg/fBs2AcSICvQOMjT2pZD7xFE0kFBd0lHo89zsiv5d8L3o4nwW+dcotUMDo+p11Jn3YKY/qeY9900P0/lv5hUJ+rswc3Nlnd6wDvgmHgR3V/GfgyS0RZf1NrrEeoR/ZD1rDAPzzrHX8wuEYhcr68E6BV2W9RGJMiI9T9wxzwFfAd+AyUgeFgK/iG9ovgAMcpAIvB92AVNzCJ9hoKu4LjjwabmYrGdwtYyb45nPM98DbYyHW4bSr7Pwb9PPszqTwGnGdUZ22DuekX1L074JSy3wC7eV1C/53clFHXVLEz7Hc3UsG38gz9x7O/F+25oC+vPzI1FVwGN0FP8Dz4gmO4fvPYN5X2LI5ZSvsTT9F/iveEgkZyhc8lTrxd3TPhM1LZ08C3vL7HxRplM6AN/AqOgVGgjhts5sKugyi4qvKzhaKZ4voHGMKCe5oF2qHfIj7TyDGucSM/sH5tY7/p+x1cBGm17vmMgikUsxw8kSv/ZoBqqjiCm7zLsBQ+vMuTl/nKbuTJcdIjpmnduIBuKmfNmfcy570BlrMvzpSap+Z2GG2WZ869nr3Ynn7TngZ7wACKbIRdl+s74QgddlPphVzgh6A/c1g8xbND2b24qD/BLVDk8XWUv8MIKuTCTNinVFjfBh+oY82mv+OZs1SNJ1n6ZzLi1nvWsgksyFUbXuVAO5RQjppENxNynyq7AfzE6xsMyyDtfhxDF1mHkZCtSJ9T9mLWIPeZibzuyejb5hlztVr7ZaaBtzlu5GU7Zi7xW8BU0CaqZt7wfnBI+b0GhvIb4iBD7SWOuYfKr+Px+zN4k3loJj/KojYIFINfmALu6TCW0dGbp0gNj+nZLHI203YCOA6WqtNhEF/OWc45ki/kHOuWzW+cgYyyK//mw8MtLEU8AkMqbIMeP5OjfWj3oU9flUL63C5XZ7zZaJXq66+eGajmdJvrG2LkuHNUco1uLapWdarC8v+z5P+U9kXwRfBF8EXwRfBFyNH+EmAA/FQ613UCCjYAAAAASUVORK5CYII=
-data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAAA0CAYAAABGkOCVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjg5QzlEREIwQjUyNjExRTNCNzdEOTU4N0NCMjI3MEFDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjg5QzlEREIxQjUyNjExRTNCNzdEOTU4N0NCMjI3MEFDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ODlDOUREQUVCNTI2MTFFM0I3N0Q5NTg3Q0IyMjcwQUMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODlDOUREQUZCNTI2MTFFM0I3N0Q5NTg3Q0IyMjcwQUMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz41D9uwAAAJWElEQVR42uxcCWxURRj+t3t029IiVCyXLSpo0ERFLVAvNJ4oBRUVL7Se4IUXeOIVjaKmgkHxthweiKJGY/HAKxqwaiwYBBESwQtpgdCWtns//6nfi7/je7v72kI0mS/5s7vvn5n3Zuab/3pNfZZlkYFBjlkCA0MEA0MEA0MEA0MEA0MEA0MEA0MEA0MEA0MEA0MEg87B919+OL/fT4FAgELBIF0zZQqVl5dTSZ8SWr1mHY2oqKBYtIWSiSSlLB81bN5EkUiU4ok4BYMBSqZ8FItEqCmVoBhf6xvOJx+PY6VSRHi/krJS5PP5OiTB4+SFcymVTFI797N4TFJ6foatjVsoNxyi3sW7U3t7hOKxCB+hHGppbqFgfh7ts+cgamlvofy8fIrHk+Tj4ROxKK1Y+S21trbRgvnz+NkilOSxU+r+hghdw+DBg6msbBDV1X1FY8ZUUmtbS8fG+nw5VFVVRUWFPamppYlCoSAlkooI7dTMmxlnMvTzSAS1oe1trdSjqIiJsJWJEKRevYs7iBCLMhH8OfwZo2Zus7R2CcWYHIq0hw4fQX5+nveX1FJ9/bfGIuxqDBgwgPLy8ngD4x0bq7baSllUstcgGj9hAoWjfJ03yrIkESwQgU9wIkXh3FAHESLRKBUV7UZlpaW0dt2PFGlro8WLX6eGhoaOE93xxpb7qL7qpDfydRuKDIlkgsi81P0PBkI53kOhIUOG0LRptzAhijrV//8YIwxluZMlxtJCf3HZz1LM8hbLQpYDWe5gaWJhu0ghliBLNctqlqksB7NsYwmz9GCZw/IFy0Uso9E3ylLIkg/dbEPTnY5TWTawfJ+p4R4sN7GsAgmUtLHczXKYaDNb6JVMB1kUjmd5R+hU2z2hG8HyIMa09U+hj8HOhdo3FZ2+7qVTL5bN2KiVLm1mQd/OMlDTjYPuXpe+86EfZvZnl+EWcbD7e+l4jzi1Zzjo+7I0Ql+j6epYfoFbcSKZcjsLzN7sMoQ0Kz/FS+dSllZ0/MSlzf3Qq3b74dpxuHaOS5/roD/Q7M8uwyU4nPZ+feN1gGfRMc5S4WIVtqPNQ7imXMkacq9UbmJZJgLUXBcGO323ERTfA3rtSViioIM+IPr7tbFshNOsScDlmdImK2nmEfRwqp36+7PoW4cAvzcCfLVfI9NNUMfTLBfiIa5kWa7p/0AwOB2s246TPgaBiY7TQZ7r8VtZkWcwmQQ+fSDTVWgzE1lICqI2aS0yELUQL7H0YymCy1Exy40s37FczTIeYybFfdS8XmE5gOVhlgKM7cMixbR4Rrox5SavweYmsW5JCIHYPVmWIINSGAT3aY+fg+dox3xS+P0uywuwsDqRVFZ2CO5jZ3Mq87qV5es0JBjOUs5yLjK5z1hOhMX+0gub38ON1U33colGG4X/eSPNWJ/hYWzkY5NrRP8rVOou03g8tK1fxLK/sCiVQnctAtACu7bEMoplI/Q/sBzK0gd61e4gkMkeYxzIfBRMqLr2srBcfbCwddD9zjKR5TSWsSw3i+vSwgwDqe37TMJ91PzPxLqp6+vgXvXUfjDLWaL/QvQtzLB/i7DuNiah/88gbNY4Udx8hkub6aLNyS5t9oX+dgfdKOh+cnEVhBOu2hytXVfj/cpSlmYOj2vuS8dY6Fdo13uKOOlUlyj8SZf5qHx9d+36kejzmyCrbjHtTKw8wzqcksXe9YO1kfGaSvObMcZYNz/mhA+ECbkUfkbHAuEK3HzPZfic46ArEM9Q5KCXfl+eAHUSb8MmbczCv7qRLE/cR6JJFF+GuMQRuS6Wb6bDXDLN8024gDDis5DLWtjWNBOuByFfFde2ilrC+V6IQKLqpxhe5aAfIPpPhrvQF2AyxtnexQg4IU7X04gDVu7k1IsQf6R7HsIhuRzfH4OF84q5+FQu69guPHcAcdRH9O+3HfPxWYm9y5oIb7OsFz5GN2vVqBsov1iCTZc4Dye5O8rIO2B1aumvcvj8btx0PcBVzzwU35elKb6Voah2l2aGO/O66Xe4OoVjujCX0dgLZS3fRwngUwSxDwhLeK4XIuxAdG/7+tOErhIbczFMG+GUFos2KnVZikCoq3gB2UthmvpGZ1GAoEwFhHsjiAyhuLbGpc8RMOM1qJH80cVniCCGIK8VQA1Xw/o+D/em4p96ZFy1SALIiQiZoMz9ZoeCRD0iUBkMKZmGa8dmEdycgjYbRUSv+8Xv0eZhTE59X410NBOeQftZLvoJ0Dchyp6LhVqG9NkJd4vovT9M7HQtQtdxEvpsQiDnBBVzfI52zzvo7XU4M819hqLNJWnaVIhUtMIrGarFRg9DXqs/1MdiU1Xa8yICFuomItjvJz7E7+UZCkBeiLAClmyYS6rsRIRntYh8YheJ0EPM9Z5OEuEJkLogQ5HLTo8fzdY1yKDRLrY8CllF/3yjNVOUqFWGcAJOcXfBfsE1Hq5mJAKz7oAfUXW9h0DPr0XkC8R6FnbiGQpFhrK0k+7tKtQ+WjPEQ2+LtezphQgb4DftQGYU/L/EhyKKn4xCVE2WmUBKVOgkZOUuis9mpD9tKEJNTTN+Uvt003sJ7uLap44bHNxKMsM8CUWjIAI7pwDVcshW9JRR4bks5rAQNYtSFNA8YTgmYptlp9L0JOFCbs5izLPRdrtD6mlHt5vQZoKmu0Dc64I01TULgaYTqqBf72Ed5qBPrYPucJYGnDSJcaJKW+pQPZwI/VqntA6HdQPaOKXx+4EgjR7mUY/xvszgShzxCTpXuujzUUqO07//VkGiP8z6L2Izl+OE24tzKU6GJchyB/3zZc0XQl8rgh/lkxcLnYrI54miVxnihs2izTLc3+1vOEeCWAm0Vyf7LQSYNUjPLByWElF/mYENlvO8DylwNSzpr3AtJQ4EqBLxl4XsZBbWdyCqp1uEfgkOYaGL+1AW6zURMFqoWt4X8EAE9VJH1ezfcdG3IS3JFTmxW8CyDRNqwuIP1MxtApOai8XtiwmHRLtb8TxRBJs+4b9XIZJvBUF3E1YsgFStGic4DIsUyfDM67GQTfjdQyxmLsj0IwhmP4edgm/D8/Whv1+0qXavYKM3uNzT/nOARZh3Ma4HMZ6axyNYmyDIF3ex2DlYq3qszQ6sZzE5vyw0MDAwMDAwMDAwQKpm/uGmgZ1SGBgYIhgYIhgYIhgYIhgYIhgYIhgYIhgYIhgYIhh4w58CDAAL8AVXFSeKUgAAAABJRU5ErkJggg==
 
   
   
diff -Nru firefox-49.0~b6+build1/l10n/lij/browser/searchplugins/yahoo-it.xml firefox-49.0~b7+build1/l10n/lij/browser/searchplugins/yahoo-it.xml
--- firefox-49.0~b6+build1/l10n/lij/browser/searchplugins/yahoo-it.xml	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/browser/searchplugins/yahoo-it.xml	2016-08-26 06:01:47.000000000 +0000
@@ -16,7 +16,7 @@
 
   
   
-  
+  
 
 https://it.search.yahoo.com/
 
diff -Nru firefox-49.0~b6+build1/l10n/lij/toolkit/chrome/global/aboutProfiles.dtd firefox-49.0~b7+build1/l10n/lij/toolkit/chrome/global/aboutProfiles.dtd
--- firefox-49.0~b6+build1/l10n/lij/toolkit/chrome/global/aboutProfiles.dtd	1970-01-01 00:00:00.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/toolkit/chrome/global/aboutProfiles.dtd	2016-08-26 06:01:47.000000000 +0000
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
diff -Nru firefox-49.0~b6+build1/l10n/lij/toolkit/chrome/global/aboutProfiles.properties firefox-49.0~b7+build1/l10n/lij/toolkit/chrome/global/aboutProfiles.properties
--- firefox-49.0~b6+build1/l10n/lij/toolkit/chrome/global/aboutProfiles.properties	1970-01-01 00:00:00.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/toolkit/chrome/global/aboutProfiles.properties	2016-08-26 06:01:47.000000000 +0000
@@ -0,0 +1,25 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+name = Profî: %S
+isDefault = Profî predefinito
+rootDir = Cartella reixe
+localDir = Cartella locale
+currentProfile = No se peu scancelâ o profî che ti deuvi òua.
+rename = Cangia nomme
+remove = Scancella
+setAsDefault = Metti comme profî predefinio
+yes = Sci
+no = No
+renameProfileTitle = Cangia nomme profî
+renameProfile = Cangia nomme a-o profî “%S”
+invalidProfileNameTitle = Nomme profî no bon
+invalidProfileName = O nomme “%S” dæto a-o profî o no l'é bon.
+deleteProfileTitle = Scancella profî
+deleteProfileConfirm = Quande se scencella un profî sto chi o saiâ levòu da l'elenco di profî disponibili e o no saiâ poscibile anulâ l’operaçion.\nTi peu çerne de scancelâ anche i file asociæ a-o profî, incluzi inpostaçion, certificati e atri dæti de l’utente. Se ti çerni sta opçion a cartella “%S” a saiâ scanelâ e no saiâ poscibile repigiala.\nScancelâ i file asociæ a-o profî?
+deleteFiles = Scancella i file
+dontDeleteFiles = No scancelâ i file
+openDir = Arvi percorso
+macOpenDir = Fanni vedde into Finder
+winOpenDir = Fanni vedde cartella
diff -Nru firefox-49.0~b6+build1/l10n/lij/webapprt/webapprt/downloads/downloads.dtd firefox-49.0~b7+build1/l10n/lij/webapprt/webapprt/downloads/downloads.dtd
--- firefox-49.0~b6+build1/l10n/lij/webapprt/webapprt/downloads/downloads.dtd	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/webapprt/webapprt/downloads/downloads.dtd	1970-01-01 00:00:00.000000000 +0000
@@ -1,43 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff -Nru firefox-49.0~b6+build1/l10n/lij/webapprt/webapprt/getUserMediaDialog.dtd firefox-49.0~b7+build1/l10n/lij/webapprt/webapprt/getUserMediaDialog.dtd
--- firefox-49.0~b6+build1/l10n/lij/webapprt/webapprt/getUserMediaDialog.dtd	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/webapprt/webapprt/getUserMediaDialog.dtd	1970-01-01 00:00:00.000000000 +0000
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff -Nru firefox-49.0~b6+build1/l10n/lij/webapprt/webapprt/overrides/appstrings.properties firefox-49.0~b7+build1/l10n/lij/webapprt/webapprt/overrides/appstrings.properties
--- firefox-49.0~b6+build1/l10n/lij/webapprt/webapprt/overrides/appstrings.properties	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/webapprt/webapprt/overrides/appstrings.properties	1970-01-01 00:00:00.000000000 +0000
@@ -1,39 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-netReset = A conescion a-o server a l'é stæta anulâ into caregamento de l'aplicaçion.
-redirectLoop = O server o reindirissa a domanda in mòddo ch'o no pòsse mai ese conpleta.
-confirmRepostPrompt = Pe anâ avanti, l'aplicaçion a deve trasmette torna e informaçioin za mandæ. Sta operaçion a faiâ torna tutte e açioin fæte primma, prezenpio 'na riçerca ò 'na conferma d'ordine.
-unknownSocketType = Inposcibile inpostâ 'n canâ de comunicaçion co-o server.
-notCached = O documento domadou da l'aplicaçion o no gh'é ciu.
-netOffline = L'aplicaçion a l'é in mòddo feua linia e no l'é poscibile acede a-a ræ.
-deniedPortAccess = L'aplicaçion a l'à provou a acede a 'na pòrta de ræ a quæ no dovieiva avei accesso. A domanda a l'é stæta anulâ pe raxoin de proteçion'.
-proxyResolveFailure = L'aplicaçion a l'é configurâ pe adeuviâ 'n server proxy ch'o no l'é razonzibile.
-proxyConnectFailure = L'aplicaçion a l'é configurâ pe adeuviâ 'n server proxy ch'o refua e conescoin.
-contentEncodingError = A risposta reçevua dò-u server a gh'à 'na forma de conprescion no valida ò no soportâ.
-unsafeContentType = Inposcibile anâ avanti perché l'aplicaçion a l'à çercou de acede a 'n tipo de file no seguo. Contatâ l'aotô de l'aplicaçion pe faghe savei o problema.
-cspBlocked = Tentativo da parte dell'aplicaçion di acede a 'na risorsa con di criteri in sciâ seguessa di contegnui che inpediscian o caregamento con sto mòddo chi.
-corruptedContentError = Inposcibile continoâ co-o caregamento de l'aplicaçion pe 'n erô scoverto inta trasmiscion di dæti.
-remoteXUL = Sta aplicaçion a l'é provou a adeuviâ 'na tecnòlogia no soportâ e a no gh'é ciu.
-
-connectionFailure = A conescion a l'é stæta refuâ into tentativo de conetise a %S.
-dnsNotFound = Inposcibile conetise a %S. Verificâ o nomme e provâ dòppo.
-externalProtocolChkMsg = Regòrda a çernita fæta pe tutti i colegamento de sto tipo.
-externalProtocolLaunchBtn = Inandia aplicaçion
-externalProtocolPrompt = Serve inandiâ 'na aplicaçion esterna pe gestî i colegamenti %1$S:.\n\n\nColegamento domandou:\n\n%2$S\n\nAplicaçion: %3$S\n\n\nSe sta domanda a no l'ea prevista porieiva ese de 'n tentativo de penetrâ into computer adeuvinando 'na vulnerabilitæ do programma indicou. Anulâ l’operaçion in cazo de dubbi in sciâ seguessa da somanda.\n
-externalProtocolTitle = Domanda de protocòllo esterno
-externalProtocolUnknown = 
-fileNotFound = No se treuva %S. Controlâ o percorso e provâ torna.
-isprinting = O documento o no se peu cangiâ mentre se stanpa ò se fâ l’anteprimma.
-malformedURI = L’indirisso o no l'é valido e o no se peu razonze.
-malwareBlocked = O scito web %S o l'é segnalou comme scito web cativo e o l'é stæto blocou in sciâ baze de inpostaçioin de seguessa.
-netInterrupt = A conescion con %S a l'é stæta terminâ in mòddo inateza. A peu ese stæta trasferia parte di dæti.
-netTimeout = O tenpo concesso a l’operaçion o l'é scheito into tentativo de conescion a %S.
-phishingBlocked = O scito web %S o l'é stæto segnalou comme scito contrafæto, realizou pe fâ descovrî a-i utenti informaçioin personali ò finansiarie.
-resendButton.label = Trasmetti torna
-unknownProtocolFound = Un di sti protocolli (%S) o no l'é registrou òpure o no l'é consentio in sto contesto.
-sslv3Used = No l'é poscibile garantî a seguessa di dæti trasmissi a %S perché o vegne deuviou SSLv3, in protocòllo de seguessa no afidabile.
-unwantedBlocked = O scito web %S o l'é segnalou comme 'n scito con do software indexiderou e o l'é blocou in sciâ baze de inpostaçioin de seguessa.
-weakCryptoUsed = O gestô di %S o l'à configurou o scito in mòddo sbaliou. Pe evitâ a poscibilitæ de furti d'informaçioin a conescion a l'é stæta fermâ.
-forbiddenBlocked = O scito web %S o l'é blocou in baze a-a configuraçion do navegatô.
diff -Nru firefox-49.0~b6+build1/l10n/lij/webapprt/webapprt/overrides/dom.properties firefox-49.0~b7+build1/l10n/lij/webapprt/webapprt/overrides/dom.properties
--- firefox-49.0~b6+build1/l10n/lij/webapprt/webapprt/overrides/dom.properties	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/webapprt/webapprt/overrides/dom.properties	1970-01-01 00:00:00.000000000 +0000
@@ -1,115 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-KillScriptTitle = Atençion: o script o no risponde
-KillScriptMessage = In script o porieiva ese ocupou ò avei smesso de risponde. L'é poscibile fermâ o script oua ò atende pe amiâ se o script finisce a seu ezegoçion.
-KillScriptWithDebugMessage = In script o porieiva ese ocupou ò avei smesso de risponde. L'é poscibile fermâ o script oua, arvilo into debugger ò lascilo continoâ.
-KillScriptLocation = Script: %S
-StopScriptButton = Ferma lo script
-DebugScriptButton = Debug do script
-WaitForScriptButton = Continoa
-DontAskAgain = &Non ripete a domanda inte l'avegnî
-JSURLLoadBlockedWarning = O tentativo de caregâ 'n URL JavaScript: da parte de 'n scito\ninte 'n barcon ch'o mostra contegnui che vegnan da 'n atro scito,\no l'é stæto blocou da gestion seguessa.
-WindowCloseBlockedWarning = I script peuan serâ solo bercoin averti con di script.
-OnBeforeUnloadTitle = Abandonâ l'aplicaçion?
-OnBeforeUnloadMessage = Sta aplicaçion a domanda 'na conferma primma de poei sciorti. I dæti inserii porieivan no ese stæti servæ.
-OnBeforeUnloadStayButton = Aresta
-OnBeforeUnloadLeaveButton = Abandonn-a
-UnexpectedCanvasVariantStyle = canvas: o tentativo de inpostâ strokeStyle ò fillStyle a 'n valô ch'o no l'é 'na stringa, un CanvasGradient ò 'n CanvasPattern o l'é stæto ignorou.
-EmptyGetElementByIdParam = A l'é stæta trasmissa 'na stringa veua a getElementById().
-LowMemoryTitle = Atençion: a memöia a no basta
-LowMemoryMessage = In script de l'applicaziçion o l'é stæto blocou. O blòcco o l'é dovuo a 'na condiçion de memöia insuficiente.
-SpeculationFailed = A scritua de 'n erbo no bilanciou con document.write() o l'à domandou ancon 'n parsing di dæti da ræ. Pe magiô informaçioin amiâ https://developer.mozilla.org/en/Optimizing_Your_Pages_for_Speculative_Parsing
-DocumentWriteIgnored = È stata ignorata una chiamata a document.write() eseguita da uno script esterno caricato in modalità asincrona.
-FormValidationTextTooLong = diminoî a lunghessa do testo a %S carateri ò meno (oua se deuvia %S carateri)
-FormValidationValueMissing = Conpilâ sto canpo
-FormValidationCheckboxMissing = Seleçionâ sta cazella pe anâ avanti
-FormValidationRadioMissing = Seleçionâ ina de inpostaçioin
-FormValidationFileMissing = Seleçionâ 'n file
-FormValidationSelectMissing = Seleçionâ 'n elemento da l'elenco
-FormValidationInvalidEmail = Inserî 'n indirisso email
-FormValidationInvalidURL = Inserî 'n URL
-FormValidationPatternMismatch = Inserî in valô into formou domandou
-FormValidationPatternMismatchWithTitle = Inserî in valô into formou domandou: %S
-FormValidationStepMismatch = Seleçionâ in valô bon. I doi valoî boin ciù vexin en %S e %S
-FormValidationStepMismatchOneValue = Seleçionâ 'n valô bon. O valô bon ciù vexin o l'é %S
-GetAttributeNodeWarning = L'uzo di getAttributeNode() o l'é deprecou. Deuvia in cangio getAttribute().
-SetAttributeNodeWarning = L'uzo de setAttributeNode() o l'é deprecou. Deuvia in cangio setAttribute().
-GetAttributeNodeNSWarning = L'uzo de getAttributeNodeNS() o l'é deprecou. Deuvia in cangio getAttributeNS().
-SetAttributeNodeNSWarning = L'uzo de setAttributeNodeNS() o l'é deprecou. Deuvia in cangio setAttributeNS().
-RemoveAttributeNodeWarning = L'uzo de removeAttributeNode() o l'é deprecou. Deuvia in cangio removeAttribute().
-CreateAttributeWarning = L'uzo de document.createAttribute() o l'é deprecou. Deuvia in cangio element.setAttribute().
-CreateAttributeNSWarning = L'uzo de document.createAttributeNS() o l'é deprecou. Deuvia in cangio element.setAttributeNS().
-OwnerElementWarning = L'uzo de ownerElement in sci atributi o l'é deprecou.
-NodeValueWarning = L'uzo de nodeValue in sci atributi o l'é deprecou. Deuvia in cangio value.
-TextContentWarning = L'uzo de textContent in sci atributi o l'é deprecou. Deuvia in cangio value.
-EnablePrivilegeWarning = L'uzo de enablePrivilege o l'é deprecou. Deuvia in cangio do còdice ch'o vegne ezegoio co-i privilegi do scistema (prezenpio in estenscion).
-nsIJSONDecodeDeprecatedWarning = L'uzo de nsIJSON.decode o l'é deprecou. Deuvia in cangio JSON.parse.
-nsIJSONEncodeDeprecatedWarning = L'uzo de nsIJSON.encode o l'é deprecou. Deuvia in cangio JSON.stringify.
-nsIDOMWindowInternalWarning = L'uzo de nsIDOMWindowInternal o l'é deprecou. Deuvia in cangio nsIDOMWindow.
-FullScreenDeniedDisabled = Domanda de pasâ a-o mòddo a schermo intrego refuâ perché e relative API en dizativæ inte preferense de l'utente.
-FullScreenDeniedFocusedPlugin = Domanda de pasâ a-o mòddo a schermo intrego refuâ perché o l'é ativo 'n plugin con barcon nativa (windowed).
-FullScreenDeniedHidden = Domanda de pasâ a-o mòddo a schermo intrego refuâ perché o documento o no l'é ciù vixibile.
-FullScreenDeniedNotInputDriven = Domanda de pasâ a-o mòddo a schermo intrego refuâ perché Element.mozRequestFullScreen() o no l'é ciamou da 'n gestô eventi rapido generou da l'utente.
-FullScreenDeniedNotInDocument = Domanda de pasâ a-o mòddo a schermo intrego refuâ perché l'elemento ch'o l'à domandâ o no gh'é ciù  into documento.
-FullScreenDeniedMovedDocument = Domanda de pasâ a-o mòddo a schermo intrego refuâ perché l'elemento ch'o l'à domandâ o l'à mesciou o documento.
-FullScreenDeniedLostWindow = Domanda de pasâ a-o mòddo a schermo intrego refuâ perché no gh'é ciù de barcoin.
-FullScreenDeniedSubDocFullScreen = Domanda de pasâ a-o mòddo a schermo intrego refuâ perché 'n sottodocumento do documento ch'o l'à domandâ o l'é za into mòddo a schermo intrego.
-FullScreenDeniedNotDescendant = Domanda de pasâ a-o mòddo a schermo intrego refuâ perché l'elemento che l'ha domandâ o no l'é figgio de l'elemento full-screen corente.
-FullScreenDeniedNotFocusedTab = Domanda de pasâ a-o mòddo a schermo intrego refuâ perché l'elemento che l'ha domandâ o no l'é into feuggio oua seleçionou.
-RemovedFullScreenElement = Ò abandonou o mòddo a schermo intrego perché l'elemento full-screen o l'é stæto scancelou dò-u documento.
-FocusedWindowedPluginWhileFullScreen = Ò abandonou o mòddo a schermo intrego perché o l'é stæto ativou 'n plugin con barcon nativo (windowed).
-HTMLSyncXHRWarning = L'analixi (parsing) HTML a no l'é soportâ in XMLHttpRequest in mòddo scincrono.
-InvalidRedirectChannelWarning = Inposcibile reindirisâ a %S perché o canâ o no inplementa nsIWritablePropertyBag2.
-ResponseTypeSyncXHRWarning = L'uzo de l'atributo responseType de XMLHttpRequest o no l'é ciù soportou in mòddo scincrono into contesto de 'n barcon.
-WithCredentialsSyncXHRWarning = L'uzo de l'atributo withCredentials di XMLHttpRequest o no l'é ciù soportou in mòddo scincrono into contesto de 'n barcon.
-TimeoutSyncXHRWarning = L'uzo de l'atributo timeout de XMLHttpRequest o no l'é ciù soportou in mòddo scincrono into contesto de 'n barcon.
-JSONCharsetWarning = Gh'é stæto 'n tentativo de diciarâ 'na codifica diversa da UTF-8 pe JSON pigiou da XMLHttpRequest. Solo UTF-8 o l'é soportou pe-a decodifica JSON.
-MediaBufferSourceNodeResampleOutOfMemory = Memöia insuficiente pe recampionâ AudioBufferSourceNode pe-a riproduçion.
-MediaDecodeAudioDataUnknownContentType = O buffer trasmisso a decodeAudioData o contegne da ròbba de tipo sconosciuo.
-MediaDecodeAudioDataUnknownError = Gh'é stæto 'n un erô sconosciuo inte l'elaboraçion de decodeAudioData.
-MediaDecodeAudioDataInvalidContent = O buffer trasmisso a decodeAudioData o contegne ròbba no bonn-a e inposcibile da decodifica.
-MediaDecodeAudioDataNoAudio = O buffer trasmisso a decodeAudioData o no contegne dæti aodio.
-MediaLoadExhaustedCandidates = Caregamento no ariescio pe tutte e risorse candidæ. O caregamento da risorsa moltimediale fermou.
-MediaLoadSourceMissingSrc = L'elemento  o no l'à 'n atributo "src". Inposcibile conpletâ o caregamento da risorsa moltimediale.
-MediaLoadHttpError = Il caricamento HTTP non è riuscito con stato %1$S. Inposcibile conpletâ o caregamento da risorsa moltimediale %2$S.
-MediaLoadInvalidURI = URI non corretto. Inposcibile conpletâ o caregamento da risorsa moltimediale %S.
-MediaLoadUnsupportedTypeAttribute = O valô "%1$S" specificou pe l’atributo "type" o no l'é soportou. Inposcibile conpletâ o caregamento da risorsa moltimediale %2$S.
-MediaLoadSourceMediaNotMatched = O valô "%1$S" specificou pe l’atributo "media"  o no va ben con anbiente. Inposcibile conpletâ o caregamento da risorsa moltimediale %2$S.
-MediaLoadUnsupportedMimeType = Il "Content-Type" HTTP "%1$S" o no l'é soportou. Inposcibile conpletâ o caregamento da risorsa moltimediale %2$S.
-MediaLoadDecodeError = Inposcibile decodificâ a risorsa moltimediale %S.
-DOMExceptionCodeWarning = L'uzo de l'atributo code de DOMException o l'é deprecou. Deuvia in cangio l'atributo name.
-NoExposedPropsWarning = L'esposiçion de ògetti chrome JS into contegnuo sensa __exposedProps__ s no l'é segue e a l'é depreca. Pe saveine de ciù amiate https://developer.mozilla.org/en/XPConnect_wrappers.
-MutationEventWarning = L'uzo de Mutation Events o l'é deprecou. Deuvia in cangio MutationObserver.
-ComponentsWarning = L'ògetto Components o l'é deprecou e saiâ fito scancelou.
-PluginHangUITitle = Atençion: o plugin o no me risponde
-PluginHangUIMessage = O plugin %S o l'é indafarou òpure porieiva esise blocou. Ti peu fermâ o plugin oua, òpure atendi pe amiâ se l'operaçion va a bon fin.
-PluginHangUIWaitButton = Continua
-PluginHangUIStopButton = Blòcca plugin
-PrefixedVisibilityApiWarning = 'mozHidden' e 'mozVisibilityState' en deprecæ. Deuvia in cangio e verscioin sensa prefisso  'hidden' e 'visibilityState'.
-NodeIteratorDetachWarning = A ciamâ de detach() in sce 'n NodeIterator a no fonçionn-a ciu.
-LenientThisWarning = L'asegnaçion o a letua de 'na propietæ con [LenientThis] a l'é stæta ignorâ perché l'ògetto 'this' o no l'é coretto.
-GetWindowWithOuterIdWarning = L'uzo de nsIDOMWindowUtils.getOuterWindowWithId() o l'é deprecou. Deuvia in cangio il metodo co-o mæximo nomme de quello in nsIWindowMediator.
-GetPreventDefaultWarning = L'uzo de getPreventDefault() o l'é deprecou. Deuvia in cangio defaultPrevented.
-GetSetUserDataWarning = L'uzo de getUserData() ò setUserData() en deprecæ. Deuvia in cangioe WeakMap ò element.dataset.
-MozGetAsFileWarning = O metodo non standard mozGetAsFile o l'é deprecou e saiâ fito scancelou. Deuvia in cangio o metodo standard toBlob.
-UseOfCaptureEventsWarning = L'uzo de captureEvents() o l'é deprecou. Agiornâ o còdice co-o metodo DOM 2 addEventListener(). Pe saveine de ciù amiate http://developer.mozilla.org/en/docs/DOM:element.addEventListener
-UseOfReleaseEventsWarning = L'uzo de releaseEvents() o l'é deprecou. Agiornâ o còdice co-o metodo DOM 2 removeEventListener(). Pe saveine de ciù amiate http://developer.mozilla.org/en/docs/DOM:element.removeEventListener
-UseOfDOM3LoadMethodWarning = L'uzo de Document.load() o l'é deprecou: agiornâ o codice con l'ògetto DOM XMLHttpRequest. Pe saveine de ciù amiate https://developer.mozilla.org/en/XMLHttpRequest
-ShowModalDialogWarning = L'uzo de window.showModalDialog() o l'é deprecou. Deuvia in cangio window.open(). Pe saveine de ciù amiate https://developer.mozilla.org/en-US/docs/Web/API/Window.open
-DataContainerEventWarning = L'uzo de DataContainerEvent o l'é deprecato. Deuvia in cangio CustomEvent.
-EmptyWorkerSourceWarning = Tentativo de creaçion d 'n Worker da 'na sorgente veua. Probabilmente no se voeva falo.
-FormValidationBadInputNumber = Scrivi 'n numero
-FormValidationNumberRangeOverflow = Seleçionâ in valô minô ò pægio a %S.
-FormValidationDateRangeOverflow = Seleçionâ in valô minô ò pægio a %S.
-FormValidationTimeRangeOverflow = Seleçionâ in valô minô ò pægio a %S.
-FormValidationNumberRangeUnderflow = Seleçionâ un valô magiô ò pægio a %S.
-FormValidationDateRangeUnderflow = Seleçionâ in valô magiô ò pægio a %S.
-FormValidationTimeRangeUnderflow = Seleçionâ in valô magiô ò pægio a %S.
-SyncXMLHttpRequestWarning = 'Na domanda XMLHttpRequest scincrona in sciô thread prinçipâ a l'é deprecâ a caoza di efetti cativi in sce l'esperiensa de l'utente. Pe atre informaçioin amia chi http://xhr.spec.whatwg.org/
-Window_ContentWarning = window._content o l'é deprecato. Deuvia in cangio window.content
-FullScreenDeniedContainerNotAllowed = Domanda de pasâ a-o mòddo a tutto schermo refuâ perché almeno un di elementi into documento o no l'é 'n iframe ò no gh'à l’atributo “allowfullscreen”.
-NavigatorGetUserMediaWarning = navigator.mozGetUserMedia o l'é stæto cangiou con navigator.mediaDevices.getUserMedia
-WebrtcDeprecatedPrefixWarning = I intermori WebRTC con prefisso “moz” en deprecæ (mozRTCPeerConnection, mozRTCSessionDescription, mozRTCIceCandidate).
-ExecCommandCutCopyDeniedNotInputDriven = document.execCommand('cut'/'copy') o l'é stæto negou perché o no l'é ciamou da 'n gestô eventi rapido generòu da l’utente.
diff -Nru firefox-49.0~b6+build1/l10n/lij/webapprt/webapprt/webapp.dtd firefox-49.0~b7+build1/l10n/lij/webapprt/webapprt/webapp.dtd
--- firefox-49.0~b6+build1/l10n/lij/webapprt/webapprt/webapp.dtd	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/webapprt/webapprt/webapp.dtd	1970-01-01 00:00:00.000000000 +0000
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff -Nru firefox-49.0~b6+build1/l10n/lij/webapprt/webapprt/webapp.properties firefox-49.0~b7+build1/l10n/lij/webapprt/webapprt/webapp.properties
--- firefox-49.0~b6+build1/l10n/lij/webapprt/webapprt/webapp.properties	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/webapprt/webapprt/webapp.properties	1970-01-01 00:00:00.000000000 +0000
@@ -1,42 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this file,
-# You can obtain one at http://mozilla.org/MPL/2.0/.
-
-# LOCALIZATION NOTE: These are localized strings for the webapp runtime,
-# which loads a webapp in a separate process from Firefox.  Webapps loaded
-# in this way have very little application chrome, but the runtime does
-# provide them with some default functionality, like the standard OS
-# menus/menuitems.
-
-# LOCALIZATION NOTE (quitApplicationCmdMac.label): %S will be replaced with
-# the name of the webapp.
-quitApplicationCmdMac.label=Sciòrti da %S
-
-# LOCALIZATION NOTE (hideApplicationCmdMac.label): %S will be replaced with
-# the name of the webapp.
-hideApplicationCmdMac.label=Ascondi %S
-
-geolocation.title = %S - Comunicaçion poxiçion
-geolocation.description = Comunicâ a pròpia poxiçion?
-geolocation.allow = Còmunica a poxiçion
-geolocation.deny = No comunicâ
-geolocation.remember = Aregòrda sta scelta
-
-webapps.install.title = Installa %S
-webapps.install.description = Anâ avanti con l'instalaçion de %S?
-webapps.install.install = Installa app
-webapps.install.dontinstall = No instalâ
-
-desktop-notification.title = %S - Vixoalizaçion notifiche
-desktop-notification.description = Mostrâ e notifiche?
-desktop-notification.allow = Fanni vedde
-desktop-notification.deny = No fâ vedde
-desktop-notification.remember = Aregòrda sta decixon
-paymentDialog.title = Pagamento
-paymentDialog.message = Quæ tipo de pagamento adeuvia?
-
-webapps.uninstall.title = Dizinstalaçion %S
-webapps.uninstall.description = Dizinstalâ “%S”?
-webapps.uninstall.uninstall = Dizinstalla app
-webapps.uninstall.dontuninstall = No dizinstalâ
-
diff -Nru firefox-49.0~b6+build1/l10n/lij/webapprt/webapp-uninstaller/webapp-uninstaller.properties firefox-49.0~b7+build1/l10n/lij/webapprt/webapp-uninstaller/webapp-uninstaller.properties
--- firefox-49.0~b6+build1/l10n/lij/webapprt/webapp-uninstaller/webapp-uninstaller.properties	2016-08-23 07:02:51.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/lij/webapprt/webapp-uninstaller/webapp-uninstaller.properties	1970-01-01 00:00:00.000000000 +0000
@@ -1,6 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this file,
-# You can obtain one at http://mozilla.org/MPL/2.0/.
-
-^UninstallCaption = Dizinstalla $AppName
-UN_CONFIRM_UNINSTALL = $AppName o saiâ dizinstalou dò-u computer.
diff -Nru firefox-49.0~b6+build1/l10n/sl/browser/chrome/browser/browser.properties firefox-49.0~b7+build1/l10n/sl/browser/chrome/browser/browser.properties
--- firefox-49.0~b6+build1/l10n/sl/browser/chrome/browser/browser.properties	2016-08-23 07:07:05.000000000 +0000
+++ firefox-49.0~b7+build1/l10n/sl/browser/chrome/browser/browser.properties	2016-08-26 06:05:00.000000000 +0000
@@ -752,7 +752,7 @@
 # LOCALIZATION NOTE (pendingCrashReports.label): Semi-colon list of plural forms
 # See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
 # #1 is the number of pending crash reports
-pendingCrashReports.label = Imate neposlano poročilo o sesutju;Imate #2 neposlani poročli o sesutju;Imate #3 neposlana poročla o sesutju;Imate #2 neposlanih poročli o sesutju
+pendingCrashReports.label = Imate neposlano poročilo o sesutju;Imate #1 neposlani poročili o sesutju;Imate #1 neposlana poročila o sesutju;Imate #1 neposlanih poročil o sesutju
 pendingCrashReports.viewAll = Prikaži
 pendingCrashReports.submitAll = Pošlji
 pendingCrashReports.ignoreAll = Prezri
diff -Nru firefox-49.0~b6+build1/layout/base/FrameLayerBuilder.cpp firefox-49.0~b7+build1/layout/base/FrameLayerBuilder.cpp
--- firefox-49.0~b6+build1/layout/base/FrameLayerBuilder.cpp	2016-08-23 06:51:10.000000000 +0000
+++ firefox-49.0~b7+build1/layout/base/FrameLayerBuilder.cpp	2016-08-26 05:53:21.000000000 +0000
@@ -4863,11 +4863,10 @@
         // The clip can move asynchronously, so we can't rely on opaque parts
         // staying in the same place.
         clippedOpaque.SetEmpty();
-      }
-      data->mOpaqueRegion.Or(data->mOpaqueRegion, clippedOpaque);
-      if (e->mHideAllLayersBelow) {
+      } else if (e->mHideAllLayersBelow) {
         hideAll = true;
       }
+      data->mOpaqueRegion.Or(data->mOpaqueRegion, clippedOpaque);
     }
 
     if (e->mLayer->GetType() == Layer::TYPE_READBACK) {
diff -Nru firefox-49.0~b6+build1/layout/base/nsDocumentViewer.cpp firefox-49.0~b7+build1/layout/base/nsDocumentViewer.cpp
--- firefox-49.0~b6+build1/layout/base/nsDocumentViewer.cpp	2016-08-23 06:51:11.000000000 +0000
+++ firefox-49.0~b7+build1/layout/base/nsDocumentViewer.cpp	2016-08-26 05:53:21.000000000 +0000
@@ -3748,6 +3748,9 @@
   nsAutoPtr beforeAndAfterPrint(
     new nsPrintEventDispatcher(doc));
   NS_ENSURE_STATE(!GetIsPrinting());
+  // beforeprint event may have caused ContentViewer to be shutdown.
+  NS_ENSURE_STATE(mContainer);
+  NS_ENSURE_STATE(mDeviceContext);
   if (!mPrintEngine) {
     mPrintEngine = new nsPrintEngine();
 
diff -Nru firefox-49.0~b6+build1/layout/base/nsLayoutUtils.cpp firefox-49.0~b7+build1/layout/base/nsLayoutUtils.cpp
--- firefox-49.0~b6+build1/layout/base/nsLayoutUtils.cpp	2016-08-23 06:51:11.000000000 +0000
+++ firefox-49.0~b7+build1/layout/base/nsLayoutUtils.cpp	2016-08-26 05:53:21.000000000 +0000
@@ -8901,10 +8901,15 @@
 
     // If the frame was scrolled since the last layers update, and by something
     // that is higher priority than APZ, we want to tell the APZ to update
-    // its scroll offset.
-    if (CanScrollOriginClobberApz(scrollableFrame->LastScrollOrigin())) {
+    // its scroll offset. We want to distinguish the case where the scroll offset
+    // was "restored" because in that case the restored scroll position should
+    // not overwrite a user-driven scroll.
+    if (scrollableFrame->LastScrollOrigin() == nsGkAtoms::restore) {
+      metrics.SetScrollOffsetRestored(scrollableFrame->CurrentScrollGeneration());
+    } else if (CanScrollOriginClobberApz(scrollableFrame->LastScrollOrigin())) {
       metrics.SetScrollOffsetUpdated(scrollableFrame->CurrentScrollGeneration());
     }
+
     nsIAtom* lastSmoothScrollOrigin = scrollableFrame->LastSmoothScrollOrigin();
     if (lastSmoothScrollOrigin) {
       metrics.SetSmoothScrollOffsetUpdated(scrollableFrame->CurrentScrollGeneration());
diff -Nru firefox-49.0~b6+build1/layout/base/nsPresContext.cpp firefox-49.0~b7+build1/layout/base/nsPresContext.cpp
--- firefox-49.0~b6+build1/layout/base/nsPresContext.cpp	2016-08-23 06:51:10.000000000 +0000
+++ firefox-49.0~b7+build1/layout/base/nsPresContext.cpp	2016-08-26 05:53:21.000000000 +0000
@@ -2681,6 +2681,12 @@
     TimeStamp::Now() - mReflowStartTime > sInterruptTimeout &&
     HavePendingInputEvent() &&
     !IsChrome();
+
+  if (mPendingInterruptFromTest) {
+    mPendingInterruptFromTest = false;
+    mHasPendingInterrupt = true;
+  }
+
   if (mHasPendingInterrupt) {
 #ifdef NOISY_INTERRUPTIBLE_REFLOW
     printf("*** DETECTED pending interrupt (time=%lld)\n", PR_Now());
diff -Nru firefox-49.0~b6+build1/layout/base/nsPresContext.h firefox-49.0~b7+build1/layout/base/nsPresContext.h
--- firefox-49.0~b6+build1/layout/base/nsPresContext.h	2016-08-23 06:51:11.000000000 +0000
+++ firefox-49.0~b7+build1/layout/base/nsPresContext.h	2016-08-26 05:53:21.000000000 +0000
@@ -1019,6 +1019,12 @@
    * ReflowStarted call. Cannot itself trigger an interrupt check.
    */
   bool HasPendingInterrupt() { return mHasPendingInterrupt; }
+  /**
+   * Sets a flag that will trip a reflow interrupt. This only bypasses the
+   * interrupt timeout and the pending event check; other checks such as whether
+   * interrupts are enabled and the interrupt check skipping still take effect.
+   */
+  void SetPendingInterruptFromTest() { mPendingInterruptFromTest = true; }
 
   /**
    * If we have a presshell, and if the given content's current
@@ -1318,6 +1324,7 @@
   mozilla::TimeStamp    mLastStyleUpdateForAllAnimations;
 
   unsigned              mHasPendingInterrupt : 1;
+  unsigned              mPendingInterruptFromTest : 1;
   unsigned              mInterruptsEnabled : 1;
   unsigned              mUseDocumentFonts : 1;
   unsigned              mUseDocumentColors : 1;
diff -Nru firefox-49.0~b6+build1/layout/generic/nsGfxScrollFrame.cpp firefox-49.0~b7+build1/layout/generic/nsGfxScrollFrame.cpp
--- firefox-49.0~b6+build1/layout/generic/nsGfxScrollFrame.cpp	2016-08-23 06:51:11.000000000 +0000
+++ firefox-49.0~b7+build1/layout/generic/nsGfxScrollFrame.cpp	2016-08-26 05:53:21.000000000 +0000
@@ -2179,7 +2179,7 @@
 
   nsRect scrollRange = GetScrollRangeForClamping();
   mDestination = scrollRange.ClampPoint(aScrollPosition);
-  if (mDestination != aScrollPosition && aOrigin == nsGkAtoms::restore) {
+  if (mDestination != aScrollPosition && aOrigin == nsGkAtoms::restore && !PageIsStillLoading()) {
     // If we're doing a restore but the scroll position is clamped, promote
     // the origin from one that APZ can clobber to one that it can't clobber.
     aOrigin = nsGkAtoms::other;
diff -Nru firefox-49.0~b6+build1/layout/generic/test/file_scroll_position_restore.html firefox-49.0~b7+build1/layout/generic/test/file_scroll_position_restore.html
--- firefox-49.0~b6+build1/layout/generic/test/file_scroll_position_restore.html	2016-08-23 06:51:10.000000000 +0000
+++ firefox-49.0~b7+build1/layout/generic/test/file_scroll_position_restore.html	2016-08-26 05:53:21.000000000 +0000
@@ -7,9 +7,9 @@
   
 	
 	
-		

Index of /pub/firefox/tinderbox-builds/mozilla-central-win32/

+

Index of /pub/firefox/tinderbox-builds/mozilla-inbound-win32/

- + @@ -18,8191 +18,111169 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + -
Type Name Size
Dir....
Dir1442444362/
Dir1442445380/
Dir1442446344/
Dir1442447004/
Dir1442448336/
Dir1442448442/
Dir1442558151/
Dir1442558812/
Dir1442871815/
Dir1442873979/
Dir1442874157/
Dir1442875117/
Dir1442875296/
Dir1442876558/
Dir1442876880/
Dir1442877182/
Dir1442877362/
Dir1442878623/
Dir1442878741/
Dir1442880422/
Dir1442880901/
Dir1442881382/
Dir1442882281/
Dir1442882641/
Dir1442883602/
Dir1442883724/
Dir1442888042/
Dir1442890741/
Dir1442891143/
Dir1442891586/
Dir1442896142/
Dir1442899442/
Dir1442901542/
Dir1442901602/
Dir1442905322/
Dir1442905686/
Dir1442906282/
Dir1442906704/
Dir1442907061/
Dir1442910655/
Dir1442916223/
Dir1442918223/
Dir1442919086/
Dir1442919309/
Dir1442923021/
Dir1442925721/
Dir1442926261/
Dir1442926921/
Dir1442927044/
Dir1442929501/
Dir1442932681/
Dir1442933703/
Dir1442934002/
Dir1442934157/
Dir1442934485/
Dir1442934722/
Dir1442934962/
Dir1442935272/
Dir1442935681/
Dir1442935922/
Dir1442936407/
Dir1442938321/
Dir1442938381/
Dir1442939222/
Dir1442940603/
Dir1442941623/
Dir1442941747/
Dir1442942042/
Dir1442945617/
Dir1442946155/
Dir1442946455/
Dir1442946874/
Dir1442946935/
Dir1442946997/
Dir1442948194/
Dir1442949034/
Dir1442949396/
Dir1442949754/
Dir1442950476/
Dir1442951198/
Dir1442957615/
Dir1442958334/
Dir1442958394/
Dir1442958638/
Dir1442961035/
Dir1442890443/1442961515/
Dir1442899830/1442962114/
Dir1442916124/1442962294/
Dir1442916902/1442962353/
Dir1442917224/1442963014/
Dir1442918523/1442963435/
Dir1442921412/1442964395/
Dir1442965059/1442965660/
Dir1442965178/1442967035/
Dir1442965365/1442967875/
Dir1442966977/1442968354/
Dir1443002550/1442968474/
Dir1443003818/1442968595/
Dir1443003999/1442968775/
Dir1443004441/1442969375/
Dir1443039257/1442970876/
Dir1443039557/1442971361/
Dir1443039798/1442971598/
Dir1443047297/1442975194/
Dir1443088817/1442976154/
Dir1443088945/1442977294/
Dir1443088951/1442977544/
Dir1443089138/1442978800/
Dir1443138136/1442979216/
Dir1443138437/1442983475/
Dir1443139096/1442985816/
Dir1443155596/1442986241/
Dir1443175326/1442987075/
Dir1443184337/1442987195/
Dir1443184637/1442987735/
Dir1443184817/1442989474/
Dir1443192936/1442989654/
Dir1443212911/1442990014/
Dir1443213395/1442990193/
Dir1443261736/1442990974/
Dir1443264094/1442991394/
Dir1443308603/1442992457/
Dir1443348180/1442992475/
Dir1443434526/1442992655/
Dir1443442139/1442993014/
Dir1443442384/1442994216/
Dir1443442678/1442996316/
Dir1443478164/1443005195/
Dir1443479845/1443005255/
Dir1443481284/1443006556/
Dir1443520344/1443008116/
Dir1443520643/1443009679/
Dir1443520885/1443013516/
Dir1443520945/1443013517/
Dir1443547591/1443014296/
Dir1443547707/1443015498/
Dir1443566229/1443016035/
Dir1443567427/1443016816/
Dir1443567956/1443018915/
Dir1443607351/1443020176/
Dir1443609908/1443021376/
Dir1443610148/1443021686/
Dir1443646046/1443023364/
Dir1443646230/1443025756/
Dir1443646466/1443026475/
Dir1443692847/1443026536/
Dir1443693445/1443028156/
Dir1443693756/1443028816/
Dir1443696026/1443030077/
Dir1443778957/1443031758/
Dir1443779497/1443031816/
Dir1443779857/1443031875/
Dir1443780124/1443033380/
Dir1443817236/1443033677/
Dir1443818017/1443034096/
Dir1443818556/1443036736/
Dir1443866545/1443039858/
Dir1443869136/1443040037/
Dir1443911977/1443041300/
Dir1443912636/1443041716/
Dir1443952931/1443044240/
Dir1443977676/1443046816/
Dir1443977856/1443047422/
Dir1444039056/1443051976/
Dir1444039116/1443053956/
Dir1444039326/1443054857/
Dir1444039409/1443056296/
Dir1444058976/1443057856/
Dir1444066242/1443058889/
Dir1444073556/1443060398/
Dir1444075358/1443065296/
Dir1444075836/1443066016/
Dir1444077013/1443066916/
Dir1444125116/1443067456/
Dir1444125357/1443067640/
Dir1444125751/1443067816/
Dir1444125828/1443067987/
Dir1444131031/1443071357/
Dir1444156115/1443072676/
Dir1444158514/1443075795/
Dir1444158935/1443076395/
Dir1444163401/1443076875/
Dir1444210955/1443077055/
Dir1444211320/1443077238/
Dir1444212125/1443077355/
Dir1444217432/1443078136/
Dir1444222360/1443078495/
Dir1444224214/1443086775/
Dir1444225953/1443087916/
Dir1444228259/1443089240/
Dir1444237114/1443090195/
Dir1444239012/1443092355/
Dir1444239162/1443093016/
Dir1444241174/1443094339/
Dir1444249845/1443094815/
Dir1444260630/1443095955/
Dir1444298012/1443100276/
Dir1444298552/1443101116/
Dir1444303812/1443103820/
Dir1444310861/1443103896/
Dir1444314649/1443105038/
Dir1444339698/1443105193/
Dir1444339760/1443105856/
Dir1444340118/1443107668/
Dir1444344139/1443108735/
Dir1444347018/1443108976/
Dir1444382507/1443110956/
Dir1444383466/1443114736/
Dir1444383827/1443117436/
Dir1444384950/1443118815/
Dir1444423127/1443121641/
Dir1444423187/1443128475/
Dir1444432607/1443128542/
Dir1444471354/1443128630/
Dir1444474011/1443128631/
Dir1444557749/1443128840/
Dir1444640547/1443128895/
Dir1444640837/1443129135/
Dir1444643893/1443129195/
Dir1444644372/1443129917/
Dir1444673292/1443132016/
Dir1444674553/1443133335/
Dir1444688334/1443135196/
Dir1444730396/1443135316/
Dir1444730458/1443135856/
Dir1444730514/1443136638/
Dir1444730545/1443137055/
Dir1444756830/1443140116/
Dir1444816943/1443140655/
Dir1444818621/1443141075/
Dir1444818799/1443145757/
Dir1444819640/1443145996/
Dir1444825818/1443146296/
Dir1444832361/1443147189/
Dir1444857089/1443147676/
Dir1444858850/1443149116/
Dir1444859991/1443159915/
Dir1444902530/1443161172/
Dir1444902648/1443161416/
Dir1444902829/1443161898/
Dir1444903353/1443162858/
Dir1444932936/1443163155/
Dir1444933115/1443166639/
Dir1444934135/1443168916/
Dir1444989748/1443174375/
Dir1444993832/1443174916/
Dir1444994251/1443175215/
Dir1444994309/1443177075/
Dir1444995000/1443179715/
Dir1445020653/1443180015/
Dir1445021612/1443182235/
Dir1445023653/1443183015/
Dir1445027542/1443184936/
Dir1445076144/1443185178/
Dir1445080291/1443188055/
Dir1445081404/1443188357/
Dir1445102373/1443190840/
Dir1445103008/1443191616/
Dir1445106032/1443192998/
Dir1445136999/1443194975/
Dir1445146208/1443195216/
Dir1445162570/1443195454/
Dir1445192371/1443195640/
Dir1445192428/1443196415/
Dir1445247092/1443196655/
Dir1445247333/1443197736/
Dir1445247572/1443203078/
Dir1445248947/1443203079/
Dir1445254208/1443203674/
Dir1445284648/1443203735/
Dir1445286616/1443205476/
Dir1445335997/1443205716/
Dir1445336011/1443205895/
Dir1445340609/1443206732/
Dir1445372699/1443207157/
Dir1445373325/1443207877/
Dir1445378083/1443207993/
Dir1445378439/1443208296/
Dir1445383915/1443209796/
Dir1445386861/1443210335/
Dir1445405760/1443210395/
Dir1445416226/1443210575/
Dir1445421601/1443210995/
Dir1445421732/1443211354/
Dir1445422148/1443211772/
Dir1445434441/1443211835/
Dir1445434940/1443212136/
Dir1445435425/1443212551/
Dir1445437959/1443214055/
Dir1445443637/1443214474/
Dir1445448661/1443215612/
Dir1445469661/1443216337/
Dir1445470202/1443217595/
Dir1445470217/1443225275/
Dir1445470679/1443229444/
Dir1445481074/1443230194/
Dir1445506579/1443238891/
Dir1445507040/1443252755/
Dir1445507249/1443253415/
Dir1445508346/1443256655/
Dir1445557102/1443272634/
Dir1445557578/1443285335/
Dir1445557886/1443291755/
Dir1445592571/1443306035/
Dir1445592868/1443331295/
Dir1445594565/1443332675/
Dir1445639192/1443335375/
Dir1445639912/1443340295/
Dir1445640461/1443345755/
Dir1445680968/1443353375/
Dir1445683652/1443365135/
Dir1445759672/1443367895/
Dir1445767468/1443382295/
Dir1445853332/1443387807/
Dir1445853392/1443390395/
Dir1445853633/1443390575/
Dir1445853862/1443396875/
Dir1445866885/1443397055/
Dir1445890883/1443397175/
Dir1445891485/1443400235/
Dir1445895309/1443401735/
Dir1445939300/1443402313/
Dir1445939600/1443403415/
Dir1445939841/1443403655/
Dir1445940159/1443406655/
Dir1445973511/1443407913/
Dir1445974532/1443411575/
Dir1445980353/1443413555/
Dir1446024993/1443413737/
Dir1446025177/1443415777/
Dir1446025537/1443416195/
Dir1446026672/1443416255/
Dir1446070115/1443416436/
Dir1446075755/1443419975/
Dir1446076895/1443423275/
Dir1446112978/1443430779/
Dir1446113621/1443430895/
Dir1446115722/1443431141/
Dir1446115842/1443434675/
Dir1446119188/1443435275/
Dir1446119547/1443439895/
Dir1446129686/1443441035/
Dir1446130647/1443441824/
Dir1446139407/1443442743/
Dir1446145046/1443444239/
Dir1446151827/1443445557/
Dir1446163490/1443445739/
Dir1446163692/1443446280/
Dir1446163999/1443447098/
Dir1446199356/1443448625/
Dir1446201869/1443448696/
Dir1446202050/1443448799/
Dir1446247051/1443449082/
Dir1446248193/1443449376/
Dir1446249271/1443451053/
Dir1446265253/1443452136/
Dir1446285727/1443453335/
Dir1446335032/1443456815/
Dir1446336112/1443467701/
Dir1446337313/1443467761/
Dir1446375823/1443467881/
Dir1446461406/1443467940/
Dir1446461526/1443468001/
Dir1446461826/1443468061/
Dir1446462161/1443468481/
Dir1446500525/1443468781/
Dir1446503226/1443469381/
Dir1446506046/1443469740/
Dir1446548313/1443469984/
Dir1446548374/1443470161/
Dir1446548493/1443470461/
Dir1446548568/1443470701/
Dir1446556174/1443471781/
Dir1446587493/1443476101/
Dir1446634715/1443476225/
Dir1446634836/1443476521/
Dir1446635077/1443476820/
Dir1446720815/1443477481/
Dir1446720996/1443477864/
Dir1446721178/1443479724/
Dir1446721473/1443480681/
Dir1446726608/1443481044/
Dir1446727175/1443481221/
Dir1446737445/1443481466/
Dir1446763955/1443481582/
Dir1446774033/1443481764/
Dir1446777942/1443481941/
Dir1446780674/1443482002/
Dir1446807863/1443482121/
Dir1446808475/1443482964/
Dir1446808895/1443483145/
Dir1446813002/1443484881/
Dir1446813936/1443485305/
Dir1446817055/1443485421/
Dir1446823960/1443486742/
Dir1446838233/1443489625/
Dir1446839012/1443490284/
Dir1446845432/1443490884/
Dir1446850775/1443491545/
Dir1446851075/1443492444/
Dir1446851435/1443492930/
Dir1446894279/1443493224/
Dir1446980657/1443493944/
Dir1447067057/1443494482/
Dir1447075775/1443499284/
Dir1447075895/1443499644/
Dir1447077396/1443500606/
Dir1447083220/1443501144/
Dir1447116572/1443502344/
Dir1447118610/1443505585/
Dir1447119151/1443505944/
Dir1447126313/1443507324/
Dir1447139615/1443508884/
Dir1447147837/1443509424/
Dir1447153113/1443510324/
Dir1447153232/1443511464/
Dir1447153325/1443512361/
Dir1447158602/1443514166/
Dir1447239727/1443519264/
Dir1447239865/1443519442/
Dir1447240170/1443520224/
Dir1447242214/1443522084/
Dir1447245010/1443523285/
Dir1447288485/1443524484/
Dir1447288966/1443527784/
Dir1447290527/1443527964/
Dir1447299048/1443531974/
Dir1447325806/1443532464/
Dir1447325927/1443533605/
Dir1447326107/1443535044/
Dir1447326158/1443537292/
Dir1447331402/1443537625/
Dir1447370020/1443537744/
Dir1447373078/1443538224/
Dir1447373435/1443539072/
Dir1447412132/1443539909/
Dir1447412568/1443540452/
Dir1447412852/1443540872/
Dir1447468232/1443541051/
Dir1447471889/1443541289/
Dir1447499044/1443542308/
Dir1447535310/1443542673/
Dir1447536213/1443543514/
Dir1447585480/1443544716/
Dir1447607553/1443545554/
Dir1447638813/1443546572/
Dir1447643551/1443548911/
Dir1447644871/1443549453/
Dir1447671154/1443550894/
Dir1447671728/1443551853/
Dir1447678894/1443552639/
Dir1447687834/1443554314/
Dir1447707696/1443556833/
Dir1447709405/1443558639/
Dir1447717207/1443558706/
Dir1447720223/1443558707/
Dir1447723331/1443558708/
Dir1447731208/1443558709/
Dir1447749965/1443558711/
Dir1447758065/1443558712/
Dir1447758162/1443558713/
Dir1447758665/1443558718/
Dir1447759687/1443558719/
Dir1447763402/1443558720/
Dir1447793885/1443558725/
Dir1447794661/1443558726/
Dir1447795326/1443558727/
Dir1447817795/1443558729/
Dir1447844552/1443558740/
Dir1447854444/1443558741/
Dir1447854564/1443558744/
Dir1447854684/1443558746/
Dir1447860662/1443558747/
Dir1447931044/1443558748/
Dir1447940301/1443558749/
Dir1447940722/1443558988/
Dir1447944806/1443558989/
Dir1447947096/1443558991/
Dir1447967412/1443558992/
Dir1447967831/1443558993/
Dir1447969632/1443558995/
Dir1447979447/1443558997/
Dir1447995394/1443558998/
Dir1448017347/1443558999/
Dir1448021553/1443559004/
Dir1448021614/1443559005/
Dir1448022602/1443559007/
Dir1448034217/1443559008/
Dir1448044230/1443559019/
Dir1448058513/1443559020/
Dir1448059056/1443559023/
Dir1448059351/1443559025/
Dir1448103752/1443559026/
Dir1448106632/1443559027/
Dir1448190150/1443559028/
Dir1448275947/1443559292/
Dir1448276188/1443562267/
Dir1448276557/1443563346/
Dir1448284166/1443566586/
Dir1448292739/1443567969/
Dir1448323830/1443568327/
Dir1448324971/1443568508/
Dir1448362652/1443570128/
Dir1448362771/1443570247/
Dir1448363153/1443570607/
Dir1448402132/1443571507/
Dir1448411671/1443572352/
Dir1448412811/1443573847/
Dir1448449351/1443574208/
Dir1448451511/1443577269/
Dir1448451631/1443577465/
Dir1448452291/1443579619/
Dir1448452352/1443580507/
Dir1448463571/1443580629/
Dir1448535369/1443580747/
Dir1448535490/1443580867/
Dir1448535746/1443581107/
Dir1448553130/1443581108/
Dir1448553250/1443581227/
Dir1448553310/1443581588/
Dir1448618552/1443582428/
Dir1448618771/1443582787/
Dir1448618951/1443584169/
Dir1448622151/1443587647/
Dir1448708550/1443591247/
Dir1448795039/1443593347/
Dir1448881348/1443595926/
Dir1448882913/1443596107/
Dir1448885843/1443596286/
Dir1448886039/1443596897/
Dir1448933436/1443597007/
Dir1448934274/1443597967/
Dir1448967573/1443599048/
Dir1448967693/1443599167/
Dir1448967746/1443602468/
Dir1448980054/1443607770/
Dir1449007712/1443607771/
Dir1449012059/1443607772/
Dir1449013440/1443607774/
Dir1449014882/1443607775/
Dir1449054130/1443607776/
Dir1449065722/1443607777/
Dir1449065904/1443607780/
Dir1449066142/1443607781/
Dir1449085342/1443607782/
Dir1449086031/1443607783/
Dir1449097222/1443607787/
Dir1449140302/1443607788/
Dir1449140362/1443607789/
Dir1449140546/1443607790/
Dir1449140665/1443607802/
Dir1449149721/1443607803/
Dir1449158504/1443607805/
Dir1449186342/1443607808/
Dir1449186882/1443607810/
Dir1449187697/1443608129/
Dir1449226576/1443608130/
Dir1449226637/1443608131/
Dir1449226817/1443608134/
Dir1449226928/1443608135/
Dir1449269965/1443608137/
Dir1449313328/1443608140/
Dir1449317200/1443608142/
Dir1449346228/1443608147/
Dir1449347009/1443608148/
Dir1449357629/1443608149/
Dir1449399888/1443608162/
Dir1449485611/1443608163/
Dir1449486130/1443608164/
Dir1449494249/1443608169/
Dir1449541943/1443608170/
Dir1449572485/1443608172/
Dir1449572532/1443608444/
Dir1449609397/1443608445/
Dir1449609520/1443608446/
Dir1449609955/1443608449/
Dir1449635440/1443608450/
Dir1449658601/1443608452/
Dir1449658948/1443608455/
Dir1449659033/1443608456/
Dir1449683321/1443608457/
Dir1449683700/1443608458/
Dir1449699878/1443608462/
Dir1449699914/1443608463/
Dir1449745332/1443608464/
Dir1449745422/1443608476/
Dir1449745722/1443608477/
Dir1449829960/1443608478/
Dir1449830255/1443608479/
Dir1449830319/1443608484/
Dir1449831727/1443608485/
Dir1449837001/1443608487/
Dir1449897572/1443608763/
Dir1449897694/1443608764/
Dir1449901804/1443608765/
Dir1449918142/1443608766/
Dir1449922111/1443608768/
Dir1449925892/1443608770/
Dir1449934290/1443608771/
Dir1449968132/1443608773/
Dir1449977435/1443608774/
Dir1450004561/1443608775/
Dir1450074752/1443608776/
Dir1450085400/1443608780/
Dir1450090592/1443608781/
Dir1450090940/1443608782/
Dir1450096217/1443608784/
Dir1450124184/1443608796/
Dir1450124562/1443608799/
Dir1450128627/1443608801/
Dir1450137679/1443608802/
Dir1450139404/1443608803/
Dir1450177341/1443608804/
Dir1450177512/1443609368/
Dir1450178232/1443610867/
Dir1450182603/1443614048/
Dir1450187172/1443615786/
Dir1450193588/1443618368/
Dir1450222138/1443619747/
Dir1450222918/1443620524/
Dir1450223278/1443621367/
Dir1450263547/1443622526/
Dir1450263749/1443622647/
Dir1450263751/1443623008/
Dir1450349794/1443624331/
Dir1450349913/1443625528/
Dir1450350127/1443625672/
Dir1450355403/1443627213/
Dir1450365756/1443627445/
Dir1450365789/1443627927/
Dir1450397158/1443628108/
Dir1450398607/1443628588/
Dir1450436552/1443628767/
Dir1450447971/1443629906/
Dir1450448092/1443630387/
Dir1450448759/1443630687/
Dir1450522935/1443630989/
Dir1450527032/1443631467/
Dir1450528202/1443631767/
Dir1450609343/1443632546/
Dir1450694968/1443632794/
Dir1450695088/1443633688/
Dir1450695214/1443636747/
Dir1450695759/1443644908/
Dir1450699709/1443645508/
Dir1450701014/1443645747/
Dir1450726888/1443645806/
Dir1450726979/1443646166/
Dir1450733445/1443646768/
Dir1450780518/1443647367/
Dir1450781001/1443647488/
Dir1450781300/1443647549/
Dir1450782127/1443648088/
Dir1450787404/1443649167/
Dir1450868310/1443651448/
Dir1450868370/1443651927/
Dir1450868491/1443652168/
Dir1450868603/1443652290/
Dir1450873800/1443653008/
Dir1450954948/1443653966/
Dir1451041327/1443654266/
Dir1451092669/1443654688/
Dir1451093628/1443655048/
Dir1451094649/1443655049/
Dir1451127732/1443655527/
Dir1451131553/1443655833/
Dir1451214159/1443655885/
Dir1451294628/1443655949/
Dir1451294808/1443656368/
Dir1451300533/1443656668/
Dir1451386539/1443657745/
Dir1451386598/1443667587/
Dir1451386936/1443669148/
Dir1451472878/1443671907/
Dir1451473175/1443671967/
Dir1451473237/1443673107/
Dir1451473354/1443677847/
Dir1451523396/1443678207/
Dir1451525318/1443679107/
Dir1451525800/1443680547/
Dir1451559734/1443681028/
Dir1451646210/1443681328/
Dir1451689600/1443683252/
Dir1451690018/1443683906/
Dir1451694638/1443684991/
Dir1451697819/1443687508/
Dir1451732537/1443687868/
Dir1451736399/1443689608/
Dir1451791119/1443690211/
Dir1451818982/1443690625/
Dir1451904758/1443692306/
Dir1451904998/1443692487/
Dir1451905337/1443693568/
Dir1451910603/1443696148/
Dir1451991339/1443697468/
Dir1451991458/1443698188/
Dir1451991580/1443698488/
Dir1451991731/1443699207/
Dir1451997037/1443699867/
Dir1452038710/1443700408/
Dir1452040218/1443701189/
Dir1452040504/1443701788/
Dir1452051035/1443702747/
Dir1452078145/1443705628/
Dir1452088807/1443705808/
Dir1452091266/1443710068/
Dir1452091507/1443712222/
Dir1452091748/1443712223/
Dir1452094269/1443712224/
Dir1452163685/1443712225/
Dir1452163807/1443712292/
Dir1452163927/1443712293/
Dir1452164555/1443712294/
Dir1452169801/1443712297/
Dir1452206930/1443712298/
Dir1452213004/1443712299/
Dir1452213355/1443712300/
Dir1452215570/1443712301/
Dir1452227871/1443712306/
Dir1452250670/1443712307/
Dir1452250790/1443712309/
Dir1452250854/1443712310/
Dir1452251014/1443712312/
Dir1452256206/1443712315/
Dir1452262917/1443712316/
Dir1452267113/1443712317/
Dir1452293012/1443712319/
Dir1452299404/1443712323/
Dir1452337328/1443712324/
Dir1452343172/1443712325/
Dir1452353623/1443712326/
Dir1452368492/1443712328/
Dir1452368732/1443712332/
Dir1452369392/1443712334/
Dir1452375014/1443712335/
Dir1452423734/1443712336/
Dir1452469112/1443712343/
Dir1452469172/1443712344/
Dir1452469231/1443712345/
Dir1452472205/1443712348/
Dir1452510127/1443712605/
Dir1452510332/1443712606/
Dir1452510692/1443712607/
Dir1452510872/1443712660/
Dir1452595852/1443712661/
Dir1452596036/1443712664/
Dir1452596155/1443712665/
Dir1452596547/1443712667/
Dir1452682410/1443712670/
Dir1452682531/1443712671/
Dir1452682710/1443712672/
Dir1452682928/1443712673/
Dir1452688218/1443712677/
Dir1452710074/1443712678/
Dir1452720621/1443712683/
Dir1452723213/1443712684/
Dir1452734370/1443712687/
Dir1452734490/1443712690/
Dir1452734792/1443712691/
Dir1452735452/1443712692/
Dir1452742433/1443712697/
Dir1452768631/1443712698/
Dir1452768691/1443712701/
Dir1452769366/1443713309/
Dir1452774614/1443714568/
Dir1452780091/1443716246/
Dir1452780439/1443719366/
Dir1452785593/1443719488/
Dir1452800641/1443719548/
Dir1452819341/1443720928/
Dir1452828643/1443724408/
Dir1452853901/1443724468/
Dir1452854384/1443725428/
Dir1452854866/1443728128/
Dir1452855755/1443728188/
Dir1452861011/1443728368/
Dir1452862426/1443728966/
Dir1452866008/1443731788/
Dir1452871883/1443734619/
Dir1452883460/1443735278/
Dir1452893405/1443739718/
Dir1452898463/1443740137/
Dir1452899483/1443743137/
Dir1452904211/1443747759/
Dir1452942160/1443750458/
Dir1452945862/1443750765/
Dir1452947401/1443751058/
Dir1453028535/1443753758/
Dir1453059683/1443753878/
Dir1453060642/1443755258/
Dir1453061182/1443759578/
Dir1453066202/1443766358/
Dir1453104562/1443767738/
Dir1453115018/1443768938/
Dir1453122324/1443769178/
Dir1453122862/1443770078/
Dir1453123402/1443770558/
Dir1453131121/1443773438/
Dir1453201117/1443774518/
Dir1453201235/1443775598/
Dir1453201297/1443777938/
Dir1453201352/1443778779/
Dir1453206643/1443781598/
Dir1453275678/1443784060/
Dir1453287759/1443785919/
Dir1453299919/1443792772/
Dir1453300279/1443794558/
Dir1453300519/1443795594/
Dir1453322823/1443796358/
Dir1453372820/1443796957/
Dir1453373300/1443798363/
Dir1453373481/1443798639/
Dir1453374128/1443799420/
Dir1453391302/1443800440/
Dir1453414712/1443800919/
Dir1453422451/1443801877/
Dir1453425092/1443802538/
Dir1453426530/1443802897/
Dir1453460071/1443804696/
Dir1453460564/1443806678/
Dir1453460792/1443807339/
Dir1453505310/1443807518/
Dir1453547028/1443807759/
Dir1453552650/1443808238/
Dir1453578390/1443810338/
Dir1453600632/1443810518/
Dir1453601587/1443812677/
Dir1453601827/1443816818/
Dir1453633329/1443817961/
Dir1453669987/1443818498/
Dir1453718887/1443818619/
Dir1453719007/1443819851/
Dir1453719068/1443820418/
Dir1453719723/1443820419/
Dir1453730482/1443822039/
Dir1453730792/1443822518/
Dir1453735462/1443823359/
Dir1453756643/1443823780/
Dir1453759283/1443825159/
Dir1453805247/1443827320/
Dir1453805666/1443827860/
Dir1453806164/1443828261/
Dir1453892369/1443828262/
Dir1453892493/1443828263/
Dir1453892556/1443828318/
Dir1453978859/1443828319/
Dir1453978928/1443828320/
Dir1453979700/1443828322/
Dir1454027436/1443828323/
Dir1454032105/1443828324/
Dir1454064448/1443828329/
Dir1454064505/1443828330/
Dir1454065326/1443828331/
Dir1454101949/1443828335/
Dir1454103687/1443828337/
Dir1454151760/1443828338/
Dir1454174185/1443828342/
Dir1454174965/1443828343/
Dir1454202566/1443828344/
Dir1454238227/1443828346/
Dir1454263346/1443828349/
Dir1454291605/1443828350/
Dir1454291666/1443828351/
Dir1454317646/1443828353/
Dir1454324561/1443828356/
Dir1454326885/1443828357/
Dir1454337626/1443828358/
Dir1454337685/1443828359/
Dir1454410219/1443828486/
Dir1454410339/1443828487/
Dir1454410952/1443828490/
Dir1454497122/1443828541/
Dir1454497245/1443828542/
Dir1454497369/1443828543/
Dir1454583626/1443828545/
Dir1454583749/1443828546/
Dir1454583854/1443828548/
Dir1454642710/1443828550/
Dir1454669650/1443828551/
Dir1454670124/1443828552/
Dir1454725716/1443828553/
Dir1454726562/1443828557/
Dir1454756527/1443828558/
Dir1454814479/1443828559/
Dir1454814652/1443828563/
Dir1454843042/1443828564/
Dir1454887863/1443828565/
Dir1454899683/1443828570/
Dir1454929083/1443828571/
Dir1454929364/1443828573/
Dir1455013077/1443828577/
Dir1455015657/1443828578/
Dir1455015827/1443828579/
Dir1455015851/1443828580/
Dir1455101060/1443828795/
Dir1455101301/1443828796/
Dir1455102156/1443828797/
Dir1455116969/1443828851/
Dir1455117075/1443828852/
Dir1455187714/1443828853/
Dir1455187955/1443828855/
Dir1455188562/1443828856/
Dir1455200013/1443828857/
Dir1455206335/1443828858/
Dir1455216094/1443828861/
Dir1455274962/1443828862/
Dir1455277273/1443828863/
Dir1455286637/1443828865/
Dir1455293543/1443828867/
Dir1455361330/1443828868/
Dir1455419717/1443828869/
Dir1455420017/1443828870/
Dir1455447756/1443828872/
Dir1455534133/1443828873/
Dir1455534744/1443828874/
Dir1455534863/1443828875/
Dir1455619669/1443828879/
Dir1455620210/1443828880/
Dir1455620565/1443828881/
Dir1455706370/1443828885/
Dir1455706949/1443828886/
Dir1455707329/1443828888/
Dir1455716149/1443829108/
Dir1455719181/1443829109/
Dir1455729509/1443829110/
Dir1455736290/1443829170/
Dir1455793106/1443829171/
Dir1455793423/1443829172/
Dir1455793429/1443829174/
Dir1455832586/1443829175/
Dir1455833066/1443829176/
Dir1455879720/1443829181/
Dir1455879768/1443829182/
Dir1455879834/1443829183/
Dir1455885036/1443829187/
Dir1455898825/1443829188/
Dir1455966247/1443829189/
Dir1456017854/1443829190/
Dir1456017973/1443829194/
Dir1456019113/1443829195/
Dir1456052620/1443829198/
Dir1456113056/1443829201/
Dir1456113057/1443829202/
Dir1456138932/1443829204/
Dir1456148158/1443829207/
Dir1456148276/1443829208/
Dir1456225384/1443829209/
Dir1456242790/1443829210/
Dir1456242969/1443829780/
Dir1456274926/1443834758/
Dir1456275465/1443841794/
Dir1456311766/1443843577/
Dir1456311916/1443849098/
Dir1456311917/1443885938/
Dir1456393410/1443886058/
Dir1456397670/1443886899/
Dir1456397910/1443888218/
Dir1456398129/1443897098/
Dir1456439186/1443909637/
Dir1456439606/1443912939/
Dir1456484576/1443917200/
Dir1456514485/1443969458/
Dir1456518026/1443978039/
Dir1456570925/1443979838/
Dir1456657359/1443999878/
Dir1456740974/1444008999/
Dir1456742174/1444010758/
Dir1456743888/1444014698/
Dir1456827761/1444015598/
Dir1456829981/1444015658/
Dir1456830157/1444015718/
Dir1456830164/1444020458/
Dir1456833280/1444023998/
Dir1456839401/1444024057/
Dir1456870891/1444024898/
Dir1456874612/1444025258/
Dir1456916529/1444025918/
Dir1456930353/1444026897/
Dir1456930532/1444027358/
Dir1457002473/1444027538/
Dir1457002532/1444027838/
Dir1457002973/1444028138/
Dir1457084726/1444029098/
Dir1457088627/1444030238/
Dir1457088747/1444030501/
Dir1457089326/1444032579/
Dir1457100746/1444035218/
Dir1457120817/1444035698/
Dir1457175761/1444037860/
Dir1457223670/1444037978/
Dir1457223849/1444038818/
Dir1457262135/1444039899/
Dir1457294651/1444044698/
Dir1457346789/1444046020/
Dir1457346912/1444048536/
Dir1457348528/1444052858/
Dir1457360663/1444055099/
Dir1457360943/1444055511/
Dir1457361557/1444057179/
Dir1457416584/1444057298/
Dir1457433743/1444057552/
Dir1457435058/1444058921/
Dir1457478073/1444059339/
Dir1457481749/1444059578/
Dir1457494932/1444059878/
Dir1457520372/1444060240/
Dir1457520433/1444060482/
Dir1457521459/1444060898/
Dir1457603245/1444061138/
Dir1457606723/1444061798/
Dir1457607196/1444061919/
Dir1457607762/1444062161/
Dir1457613080/1444062399/
Dir1457680454/1444063121/
Dir1457689994/1444066655/
Dir1457693534/1444075959/
Dir1457694153/1444076078/
Dir1457699474/1444076138/
Dir1457711534/1444076380/
Dir1457712793/1444076381/
Dir1457780645/1444076678/
Dir1457786430/1444077012/
Dir1457805630/1444078778/
Dir1457814331/1444080518/
Dir1457863458/1444080623/
Dir1457910264/1444080774/
Dir1457910571/1444081075/
Dir1457949735/1444082035/
Dir1458001953/1444083713/
Dir1458002372/1444084016/
Dir1458007896/1444084436/
Dir1458034954/1444085216/
Dir1458035077/1444085816/
Dir1458036150/1444087139/
Dir1458086562/1444087827/
Dir1458088008/1444095715/
Dir1458122146/1444096256/
Dir1458122270/1444097101/
Dir1458122553/1444097335/
Dir1458166044/1444097755/
Dir1458171250/1444097935/
Dir1458172281/1444098534/
Dir1458208757/1444098711/
Dir1458208880/1444101596/
Dir1458208955/1444103633/
Dir1458227122/1444105075/
Dir1458227280/1444109425/
Dir1458295356/1444110894/
Dir1458311592/1444113356/
Dir1458312795/1444113715/
Dir1458381958/1444115815/
Dir1458387877/1444116415/
Dir1458400477/1444116596/
Dir1458401075/1444120216/
Dir1458401127/1444120555/
Dir1458447996/1444121336/
Dir1458452002/1444121814/
Dir1458468249/1444122223/
Dir1458554537/1444122536/
Dir1458570707/1444123375/
Dir1458570714/1444125654/
Dir1458570754/1444125955/
Dir1458581517/1444126973/
Dir1458640837/1444131040/
Dir1458641057/1444132436/
Dir1458645346/1444133996/
Dir1458646228/1444137357/
Dir1458689432/1444137536/
Dir1458689440/1444138674/
Dir1458690382/1444139227/
Dir1458726635/1444139589/
Dir1458727440/1444139639/
Dir1458746792/1444139753/
Dir1458754227/1444140574/
Dir1458813887/1444141629/
Dir1458832106/1444141630/
Dir1458832617/1444141631/
Dir1458840627/1444141632/
Dir1458858157/1444141716/
Dir1458859236/1444141717/
Dir1458862208/1444141973/
Dir1458884263/1444143033/
Dir1458894621/1444145374/
Dir1458900161/1444146576/
Dir1458920197/1444152611/
Dir1458920258/1444156714/
Dir1458920312/1444156892/
Dir1458921073/1444157074/
Dir1458927025/1444157196/
Dir1458957951/1444157314/
Dir1458958178/1444158874/
Dir1458986670/1444159052/
Dir1458992731/1444159239/
Dir1459002678/1444159475/
Dir1459073077/1444160613/
Dir1459159335/1444162891/
Dir1459195215/1444163010/
Dir1459195605/1444163011/
Dir1459245766/1444163012/
Dir1459253795/1444163091/
Dir1459253851/1444163092/
Dir1459332206/1444163093/
Dir1459343618/1444163376/
Dir1459348279/1444163377/
Dir1459418551/1444163378/
Dir1459453651/1444163379/
Dir1459454740/1444163455/
Dir1459504128/1444163456/
Dir1459504936/1444163457/
Dir1459510228/1444164936/
Dir1459549951/1444167152/
Dir1459550698/1444167692/
Dir1459553414/1444168834/
Dir1459591346/1444170212/
Dir1459617592/1444170993/
Dir1459618227/1444171172/
Dir1459618609/1444172135/
Dir1459629011/1444174204/
Dir1459677763/1444174952/
Dir1459734079/1444177650/
Dir1459763718/1444179092/
Dir1459763781/1444182452/
Dir1459764151/1444187195/
Dir1459812344/1444190132/
Dir1459827380/1444190312/
Dir1459839305/1444195814/
Dir1459842612/1444195952/
Dir1459846879/1444196555/
Dir1459850534/1444197032/
Dir1459861148/1444197393/
Dir1459867875/1444197632/
Dir1459868000/1444198530/
Dir1459898772/1444199852/
Dir1459936695/1444200091/
Dir1459936821/1444201509/
Dir1459936941/1444202792/
Dir1460022748/1444205672/
Dir1460022768/1444211492/
Dir1460023354/1444211792/
Dir1460057625/1444211972/
Dir1460061260/1444212391/
Dir1460061768/1444212392/
Dir1460109600/1444212691/
Dir1460109722/1444212991/
Dir1460109732/1444213113/
Dir1460154466/1444213198/
Dir1460196139/1444213411/
Dir1460202470/1444213592/
Dir1460210983/1444213891/
Dir1460229824/1444213996/
Dir1460282544/1444213997/
Dir1460319666/1444213998/
Dir1460319732/1444214001/
Dir1460367969/1444214079/
Dir1460368028/1444214080/
Dir1460368951/1444214083/
Dir1460415045/1444214252/
Dir1460415778/1444214278/
Dir1460455355/1444214400/
Dir1460461429/1444214403/
Dir1460461911/1444214406/
Dir1460462429/1444214481/
Dir1460500130/1444214483/
Dir1460500553/1444214486/
Dir1460540873/1444214492/
Dir1460541294/1444214506/
Dir1460541759/1444214510/
Dir1460581724/1444214513/
Dir1460582390/1444215271/
Dir1460590779/1444216350/
Dir1460626607/1444217423/
Dir1460626792/1444217912/
Dir1460628167/1444219473/
Dir1460643648/1444222592/
Dir1460713248/1444222832/
Dir1460713371/1444223552/
Dir1460714551/1444224751/
Dir1460743307/1444224870/
Dir1460755945/1444224931/
Dir1460759834/1444226135/
Dir1460797100/1444226372/
Dir1460800940/1444227994/
Dir1460807417/1444228246/
Dir1460887561/1444229972/
Dir1460961975/1444231112/
Dir1460973785/1444233931/
Dir1460983157/1444237112/
Dir1460983283/1444237292/
Dir1460990361/1444238611/
Dir1461017302/1444239932/
Dir1461017661/1444240714/
Dir1461037891/1444241073/
Dir1461059932/1444241507/
Dir1461059984/1444241801/
Dir1461060192/1444242511/
Dir1461145662/1444243592/
Dir1461145898/1444244432/
Dir1461146533/1444244915/
Dir1461175369/1444245093/
Dir1461185753/1444246414/
Dir1461187086/1444246532/
Dir1461229087/1444247132/
Dir1461232982/1444247432/
Dir1461243866/1444248692/
Dir1461273976/1444250130/
Dir1461274995/1444251833/
Dir1461319343/1444253372/
Dir1461333359/1444253671/
Dir1461333436/1444254872/
Dir1461401271/1444255349/
Dir1461405740/1444255650/
Dir1461412855/1444256911/
Dir1461460364/1444257212/
Dir1461492361/1444257453/
Dir1461578084/1444257872/
Dir1461578210/1444260032/
Dir1461578748/1444260635/
Dir1461604276/1444260932/
Dir1461604419/1444261233/
Dir1461604923/1444261652/
Dir1461623172/1444262627/
Dir1461629593/1444264170/
Dir1461664932/1444264312/
Dir1461671048/1444274671/
Dir1461671161/1444277972/
Dir1461671169/1444281212/
Dir1461705480/1444281392/
Dir1461705600/1444281452/
Dir1461750963/1444282171/
Dir1461751147/1444283612/
Dir1461751335/1444284394/
Dir1461778096/1444284512/
Dir1461837738/1444284932/
Dir1461852889/1444286970/
Dir1461854287/1444288591/
Dir1461868023/1444290213/
Dir1461923321/1444291712/
Dir1461924135/1444292072/
Dir1461967137/1444292972/
Dir1462010543/1444296272/
Dir1462017395/1444296392/
Dir1462096937/1444296452/
Dir1462181018/1444296512/
Dir1462181200/1444296898/
Dir1462183327/1444296993/
Dir1462269401/1444297352/
Dir1462269861/1444297470/
Dirlatest/1444297711/
Dir1444297892/
Dir1444298311/
Dir1444300171/
Dir1444300232/
Dir1444303805/
Dir1444305151/
Dir1444305835/
Dir1444308216/
Dir1444309056/
Dir1444312896/
Dir1444313557/
Dir1444314154/
Dir1444314743/
Dir1444318055/
Dir1444319673/
Dir1444321537/
Dir1444322793/
Dir1444323337/
Dir1444324293/
Dir1444324589/
Dir1444324954/
Dir1444325413/
Dir1444325733/
Dir1444326035/
Dir1444330757/
Dir1444330947/
Dir1444331719/
Dir1444332197/
Dir1444332621/
Dir1444334764/
Dir1444335200/
Dir1444336220/
Dir1444336699/
Dir1444337839/
Dir1444338154/
Dir1444339158/
Dir1444340179/
Dir1444340658/
Dir1444341137/
Dir1444341558/
Dir1444342038/
Dir1444342699/
Dir1444342998/
Dir1444343359/
Dir1444344320/
Dir1444347015/
Dir1444348851/
Dir1444349035/
Dir1444349270/
Dir1444350947/
Dir1444354727/
Dir1444356108/
Dir1444357881/
Dir1444359948/
Dir1444363728/
Dir1444383767/
Dir1444384727/
Dir1444385012/
Dir1444388088/
Dir1444393608/
Dir1444395048/
Dir1444402437/
Dir1444402612/
Dir1444403268/
Dir1444404467/
Dir1444407827/
Dir1444408488/
Dir1444408716/
Dir1444409751/
Dir1444411308/
Dir1444411489/
Dir1444412267/
Dir1444416167/
Dir1444417248/
Dir1444417249/
Dir1444417573/
Dir1444421087/
Dir1444422169/
Dir1444422649/
Dir1444422828/
Dir1444422890/
Dir1444423248/
Dir1444423788/
Dir1444424148/
Dir1444425348/
Dir1444425408/
Dir1444434229/
Dir1444434348/
Dir1444439747/
Dir1444440048/
Dir1444440114/
Dir1444460749/
Dir1444462187/
Dir1444465067/
Dir1444477367/
Dir1444495547/
Dir1444509947/
Dir1444518396/
Dir1444537727/
Dir1444538987/
Dir1444550867/
Dir1444565327/
Dir1444567607/
Dir1444574568/
Dir1444579068/
Dir1444579127/
Dir1444579187/
Dir1444580149/
Dir1444592568/
Dir1444604773/
Dir1444609513/
Dir1444611970/
Dir1444612573/
Dir1444616952/
Dir1444621812/
Dir1444622294/
Dir1444623253/
Dir1444630873/
Dir1444634233/
Dir1444634413/
Dir1444634533/
Dir1444635672/
Dir1444639633/
Dir1444642152/
Dir1444643954/
Dir1444644862/
Dir1444646053/
Dir1444647192/
Dir1444650850/
Dir1444652598/
Dir1444653254/
Dir1444656013/
Dir1444663332/
Dir1444667053/
Dir1444667533/
Dir1444668974/
Dir1444669692/
Dir1444670893/
Dir1444671793/
Dir1444672154/
Dir1444672573/
Dir1444673235/
Dir1444674133/
Dir1444674373/
Dir1444674793/
Dir1444675812/
Dir1444677013/
Dir1444678622/
Dir1444678623/
Dir1444678624/
Dir1444678625/
Dir1444678626/
Dir1444678627/
Dir1444678628/
Dir1444678629/
Dir1444678630/
Dir1444678631/
Dir1444678632/
Dir1444678634/
Dir1444678635/
Dir1444678637/
Dir1444678638/
Dir1444680492/
Dir1444681358/
Dir1444681652/
Dir1444681653/
Dir1444681654/
Dir1444681655/
Dir1444681656/
Dir1444681657/
Dir1444681658/
Dir1444681659/
Dir1444681661/
Dir1444681662/
Dir1444681663/
Dir1444681665/
Dir1444681666/
Dir1444681668/
Dir1444681898/
Dir1444683229/
Dir1444683230/
Dir1444683233/
Dir1444683310/
Dir1444683311/
Dir1444683312/
Dir1444683313/
Dir1444683518/
Dir1444683519/
Dir1444683520/
Dir1444683521/
Dir1444683525/
Dir1444683607/
Dir1444683608/
Dir1444683609/
Dir1444683612/
Dir1444687479/
Dir1444692114/
Dir1444693735/
Dir1444697275/
Dir1444699017/
Dir1444702375/
Dir1444705560/
Dir1444714555/
Dir1444716295/
Dir1444719895/
Dir1444720079/
Dir1444720194/
Dir1444720675/
Dir1444732917/
Dir1444733036/
Dir1444734383/
Dir1444734534/
Dir1444735315/
Dir1444736274/
Dir1444737657/
Dir1444739456/
Dir1444740596/
Dir1444746704/
Dir1444746750/
Dir1444747349/
Dir1444747769/
Dir1444748429/
Dir1444749328/
Dir1444753588/
Dir1444754609/
Dir1444756109/
Dir1444756468/
Dir1444764089/
Dir1444765948/
Dir1444766813/
Dir1444769131/
Dir1444769188/
Dir1444769249/
Dir1444770029/
Dir1444770629/
Dir1444771289/
Dir1444771949/
Dir1444772669/
Dir1444772788/
Dir1444773449/
Dir1444777109/
Dir1444777429/
Dir1444778369/
Dir1444779509/
Dir1444779988/
Dir1444780409/
Dir1444780949/
Dir1444782029/
Dir1444783109/
Dir1444783771/
Dir1444786532/
Dir1444788929/
Dir1444790476/
Dir1444791689/
Dir1444794020/
Dir1444797440/
Dir1444799899/
Dir1444801939/
Dir1444802752/
Dir1444803140/
Dir1444803799/
Dir1444804641/
Dir1444804879/
Dir1444804999/
Dir1444805419/
Dir1444806269/
Dir1444807640/
Dir1444807819/
Dir1444807939/
Dir1444808178/
Dir1444808599/
Dir1444809620/
Dir1444810462/
Dir1444812379/
Dir1444815322/
Dir1444815440/
Dir1444815560/
Dir1444818680/
Dir1444819159/
Dir1444819702/
Dir1444824861/
Dir1444825818/
Dir1444825941/
Dir1444825996/
Dir1444827200/
Dir1444828817/
Dir1444832538/
Dir1444832960/
Dir1444834895/
Dir1444835262/
Dir1444835610/
Dir1444836510/
Dir1444837171/
Dir1444838768/
Dir1444839208/
Dir1444841551/
Dir1444845331/
Dir1444845691/
Dir1444845828/
Dir1444845871/
Dir1444845991/
Dir1444846230/
Dir1444847011/
Dir1444847491/
Dir1444847671/
Dir1444847730/
Dir1444849287/
Dir1444849591/
Dir1444853251/
Dir1444853371/
Dir1444853727/
Dir1444854871/
Dir1444855347/
Dir1444855768/
Dir1444855769/
Dir1444855892/
Dir1444856628/
Dir1444857529/
Dir1444857649/
Dir1444857708/
Dir1444858186/
Dir1444860109/
Dir1444860963/
Dir1444861966/
Dir1444865031/
Dir1444865274/
Dir1444866757/
Dir1444867248/
Dir1444867249/
Dir1444870034/
Dir1444873969/
Dir1444875349/
Dir1444877027/
Dir1444877544/
Dir1444879368/
Dir1444880989/
Dir1444881166/
Dir1444881167/
Dir1444882790/
Dir1444888431/
Dir1444889329/
Dir1444889809/
Dir1444889989/
Dir1444890169/
Dir1444890410/
Dir1444893356/
Dir1444894010/
Dir1444894369/
Dir1444894370/
Dir1444895938/
Dir1444896648/
Dir1444899827/
Dir1444900170/
Dir1444901618/
Dir1444903184/
Dir1444909546/
Dir1444910929/
Dir1444914889/
Dir1444917025/
Dir1444917108/
Dir1444917229/
Dir1444917912/
Dir1444918787/
Dir1444918914/
Dir1444922556/
Dir1444923714/
Dir1444924553/
Dir1444924790/
Dir1444925388/
Dir1444925448/
Dir1444925630/
Dir1444929950/
Dir1444934259/
Dir1444935876/
Dir1444936115/
Dir1444936370/
Dir1444936921/
Dir1444938355/
Dir1444938639/
Dir1444939955/
Dir1444941817/
Dir1444942536/
Dir1444943259/
Dir1444943323/
Dir1444944815/
Dir1444945058/
Dir1444948890/
Dir1444949490/
Dir1444952731/
Dir1444953690/
Dir1444956878/
Dir1444961105/
Dir1444973010/
Dir1444973191/
Dir1444973310/
Dir1444974810/
Dir1444975471/
Dir1444975830/
Dir1444976610/
Dir1444977090/
Dir1444977210/
Dir1444977269/
Dir1444977810/
Dir1444977931/
Dir1444978110/
Dir1444978650/
Dir1444981350/
Dir1444984228/
Dir1444986031/
Dir1444989870/
Dir1444993053/
Dir1444995012/
Dir1444999591/
Dir1444999710/
Dir1445001751/
Dir1445002246/
Dir1445002651/
Dir1445002833/
Dir1445003286/
Dir1445003437/
Dir1445004098/
Dir1445004595/
Dir1445005911/
Dir1445008836/
Dir1445009313/
Dir1445009492/
Dir1445011170/
Dir1445011583/
Dir1445013031/
Dir1445013871/
Dir1445014170/
Dir1445014725/
Dir1445015845/
Dir1445015910/
Dir1445015911/
Dir1445016510/
Dir1445016612/
Dir1445018855/
Dir1445020594/
Dir1445020651/
Dir1445021009/
Dir1445021731/
Dir1445021920/
Dir1445022606/
Dir1445023891/
Dir1445024501/
Dir1445025358/
Dir1445026560/
Dir1445026797/
Dir1445027337/
Dir1445027525/
Dir1445028993/
Dir1445031631/
Dir1445032050/
Dir1445032231/
Dir1445034105/
Dir1445034692/
Dir1445038215/
Dir1445038591/
Dir1445043031/
Dir1445045490/
Dir1445046211/
Dir1445049051/
Dir1445052150/
Dir1445052451/
Dir1445052813/
Dir1445064630/
Dir1445067750/
Dir1445068468/
Dir1445070624/
Dir1445096228/
Dir1445102989/
Dir1445106330/
Dir1445117195/
Dir1445117475/
Dir1445124603/
Dir1445141972/
Dir1445143291/
Dir1445145390/
Dir1445146206/
Dir1445166990/
Dir1445174431/
Dir1445192610/
Dir1445194296/
Dir1445199570/
Dir1445208030/
Dir1445214810/
Dir1445216190/
Dir1445217932/
Dir1445219070/
Dir1445221110/
Dir1445221230/
Dir1445221350/
Dir1445222610/
Dir1445224290/
Dir1445224830/
Dir1445224890/
Dir1445234250/
Dir1445234370/
Dir1445235150/
Dir1445235570/
Dir1445243440/
Dir1445244990/
Dir1445245770/
Dir1445247691/
Dir1445248230/
Dir1445248830/
Dir1445250872/
Dir1445252011/
Dir1445252555/
Dir1445253811/
Dir1445254207/
Dir1445254890/
Dir1445260231/
Dir1445261971/
Dir1445262658/
Dir1445262755/
Dir1445264014/
Dir1445264542/
Dir1445265235/
Dir1445265249/
Dir1445265529/
Dir1445267337/
Dir1445267711/
Dir1445267888/
Dir1445269176/
Dir1445269889/
Dir1445270791/
Dir1445273972/
Dir1445274100/
Dir1445274272/
Dir1445276223/
Dir1445276729/
Dir1445277229/
Dir1445277394/
Dir1445277395/
Dir1445278189/
Dir1445278490/
Dir1445279009/
Dir1445279369/
Dir1445279851/
Dir1445280597/
Dir1445282190/
Dir1445283679/
Dir1445284123/
Dir1445284529/
Dir1445284709/
Dir1445284765/
Dir1445285792/
Dir1445286269/
Dir1445286614/
Dir1445287829/
Dir1445288250/
Dir1445289272/
Dir1445289453/
Dir1445292232/
Dir1445293051/
Dir1445293289/
Dir1445293470/
Dir1445293650/
Dir1445294265/
Dir1445295750/
Dir1445296006/
Dir1445296247/
Dir1445296632/
Dir1445296930/
Dir1445297647/
Dir1445300347/
Dir1445302586/
Dir1445302760/
Dir1445304626/
Dir1445305699/
Dir1445306146/
Dir1445306171/
Dir1445307671/
Dir1445309032/
Dir1445309300/
Dir1445310462/
Dir1445311749/
Dir1445312695/
Dir1445314989/
Dir1445315107/
Dir1445318168/
Dir1445318482/
Dir1445318609/
Dir1445319367/
Dir1445323207/
Dir1445329387/
Dir1445329567/
Dir1445330167/
Dir1445330707/
Dir1445330766/
Dir1445331189/
Dir1445332086/
Dir1445332807/
Dir1445333647/
Dir1445334007/
Dir1445334386/
Dir1445334488/
Dir1445336419/
Dir1445337188/
Dir1445337308/
Dir1445337486/
Dir1445337668/
Dir1445338874/
Dir1445340667/
Dir1445340907/
Dir1445341517/
Dir1445341567/
Dir1445342891/
Dir1445343254/
Dir1445344929/
Dir1445345955/
Dir1445347632/
Dir1445348887/
Dir1445350268/
Dir1445350695/
Dir1445351056/
Dir1445351126/
Dir1445352014/
Dir1445357527/
Dir1445359327/
Dir1445359449/
Dir1445359574/
Dir1445361488/
Dir1445362628/
Dir1445362749/
Dir1445364009/
Dir1445364151/
Dir1445365874/
Dir1445366709/
Dir1445368210/
Dir1445369264/
Dir1445369599/
Dir1445370608/
Dir1445370912/
Dir1445371648/
Dir1445371987/
Dir1445373737/
Dir1445373897/
Dir1445373952/
Dir1445374431/
Dir1445379019/
Dir1445380241/
Dir1445386501/
Dir1445400721/
Dir1445406422/
Dir1445406423/
Dir1445406481/
Dir1445406540/
Dir1445407020/
Dir1445407080/
Dir1445407501/
Dir1445407560/
Dir1445408101/
Dir1445408884/
Dir1445409420/
Dir1445410209/
Dir1445411793/
Dir1445413648/
Dir1445413709/
Dir1445413710/
Dir1445413853/
Dir1445413854/
Dir1445413855/
Dir1445413942/
Dir1445415302/
Dir1445415615/
Dir1445415847/
Dir1445418538/
Dir1445418975/
Dir1445423402/
Dir1445434502/
Dir1445435731/
Dir1445435732/
Dir1445435758/
Dir1445436081/
Dir1445436649/
Dir1445436781/
Dir1445436945/
Dir1445437158/
Dir1445437621/
Dir1445442564/
Dir1445444015/
Dir1445444016/
Dir1445444688/
Dir1445446501/
Dir1445448238/
Dir1445451750/
Dir1445454474/
Dir1445457312/
Dir1445458080/
Dir1445459649/
Dir1445460183/
Dir1445463061/
Dir1445463122/
Dir1445463458/
Dir1445466067/
Dir1445470866/
Dir1445471398/
Dir1445472017/
Dir1445472860/
Dir1445472865/
Dir1445473640/
Dir1445475256/
Dir1445477296/
Dir1445478658/
Dir1445478917/
Dir1445480280/
Dir1445480462/
Dir1445481490/
Dir1445484239/
Dir1445486458/
Dir1445489040/
Dir1445494698/
Dir1445495841/
Dir1445496002/
Dir1445496240/
Dir1445497082/
Dir1445501655/
Dir1445501777/
Dir1445502081/
Dir1445502211/
Dir1445506240/
Dir1445507821/
Dir1445516703/
Dir1445517551/
Dir1445520298/
Dir1445521082/
Dir1445521387/
Dir1445521719/
Dir1445522709/
Dir1445523189/
Dir1445527581/
Dir1445530642/
Dir1445531151/
Dir1445531648/
Dir1445531827/
Dir1445533214/
Dir1445534906/
Dir1445537313/
Dir1445537314/
Dir1445538232/
Dir1445538239/
Dir1445546341/
Dir1445546578/
Dir1445546808/
Dir1445549580/
Dir1445549640/
Dir1445550003/
Dir1445550485/
Dir1445554220/
Dir1445554339/
Dir1445555300/
Dir1445556919/
Dir1445557158/
Dir1445558254/
Dir1445558334/
Dir1445558553/
Dir1445562766/
Dir1445563863/
Dir1445565996/
Dir1445569017/
Dir1445571885/
Dir1445572591/
Dir1445572772/
Dir1445574875/
Dir1445578588/
Dir1445579504/
Dir1445580569/
Dir1445581232/
Dir1445581833/
Dir1445582072/
Dir1445584708/
Dir1445584899/
Dir1445585074/
Dir1445585128/
Dir1445585247/
Dir1445590352/
Dir1445593773/
Dir1445594681/
Dir1445599234/
Dir1445603790/
Dir1445605203/
Dir1445605374/
Dir1445608978/
Dir1445610222/
Dir1445612011/
Dir1445613808/
Dir1445620112/
Dir1445626474/
Dir1445626955/
Dir1445627435/
Dir1445629001/
Dir1445629175/
Dir1445629236/
Dir1445629549/
Dir1445632833/
Dir1445633261/
Dir1445635536/
Dir1445637215/
Dir1445637876/
Dir1445640938/
Dir1445641973/
Dir1445648735/
Dir1445649095/
Dir1445655635/
Dir1445661635/
Dir1445661755/
Dir1445665475/
Dir1445679398/
Dir1445679574/
Dir1445679694/
Dir1445689116/
Dir1445694756/
Dir1445695175/
Dir1445695497/
Dir1445699495/
Dir1445707355/
Dir1445713297/
Dir1445713671/
Dir1445715515/
Dir1445717223/
Dir1445775517/
Dir1445785297/
Dir1445804134/
Dir1445805934/
Dir1445811093/
Dir1445816314/
Dir1445819492/
Dir1445835860/
Dir1445838160/
Dir1445839487/
Dir1445848414/
Dir1445852613/
Dir1445853641/
Dir1445853866/
Dir1445853867/
Dir1445853876/
Dir1445854295/
Dir1445854894/
Dir1445855386/
Dir1445856516/
Dir1445856709/
Dir1445856932/
Dir1445857054/
Dir1445858617/
Dir1445858736/
Dir1445859514/
Dir1445864674/
Dir1445866824/
Dir1445867182/
Dir1445873218/
Dir1445873553/
Dir1445873665/
Dir1445873789/
Dir1445874895/
Dir1445876570/
Dir1445877501/
Dir1445878342/
Dir1445880487/
Dir1445880625/
Dir1445880866/
Dir1445880867/
Dir1445881357/
Dir1445882871/
Dir1445883022/
Dir1445883144/
Dir1445883500/
Dir1445883802/
Dir1445885606/
Dir1445888379/
Dir1445888813/
Dir1445889621/
Dir1445893787/
Dir1445893789/
Dir1445895570/
Dir1445898204/
Dir1445898482/
Dir1445899503/
Dir1445900518/
Dir1445900522/
Dir1445904925/
Dir1445906926/
Dir1445908384/
Dir1445912542/
Dir1445913680/
Dir1445914882/
Dir1445915089/
Dir1445918002/
Dir1445920761/
Dir1445924659/
Dir1445929101/
Dir1445933361/
Dir1445933541/
Dir1445933962/
Dir1445934082/
Dir1445934562/
Dir1445935881/
Dir1445936001/
Dir1445939903/
Dir1445946624/
Dir1445950402/
Dir1445950524/
Dir1445950525/
Dir1445950761/
Dir1445951122/
Dir1445951779/
Dir1445952982/
Dir1445955145/
Dir1445956827/
Dir1445957485/
Dir1445960182/
Dir1445961575/
Dir1445963080/
Dir1445964278/
Dir1445966193/
Dir1445966550/
Dir1445967873/
Dir1445968352/
Dir1445968591/
Dir1445970151/
Dir1445970750/
Dir1445971051/
Dir1445972010/
Dir1445977533/
Dir1445977534/
Dir1445979761/
Dir1445980412/
Dir1445980591/
Dir1445982148/
Dir1445982451/
Dir1445983170/
Dir1445984311/
Dir1445989651/
Dir1445998892/
Dir1446000637/
Dir1446001759/
Dir1446004472/
Dir1446005088/
Dir1446007712/
Dir1446008434/
Dir1446009332/
Dir1446010352/
Dir1446011852/
Dir1446023431/
Dir1446025953/
Dir1446027632/
Dir1446029252/
Dir1446030340/
Dir1446031834/
Dir1446032617/
Dir1446032912/
Dir1446035454/
Dir1446036453/
Dir1446036636/
Dir1446038972/
Dir1446039216/
Dir1446039453/
Dir1446040986/
Dir1446041254/
Dir1446041492/
Dir1446043059/
Dir1446044315/
Dir1446047311/
Dir1446047372/
Dir1446048360/
Dir1446051277/
Dir1446053013/
Dir1446054692/
Dir1446055498/
Dir1446056193/
Dir1446056792/
Dir1446058113/
Dir1446058353/
Dir1446058772/
Dir1446059493/
Dir1446059613/
Dir1446061114/
Dir1446061233/
Dir1446062559/
Dir1446065012/
Dir1446065073/
Dir1446068012/
Dir1446068254/
Dir1446068793/
Dir1446069274/
Dir1446069332/
Dir1446070178/
Dir1446070653/
Dir1446071436/
Dir1446073475/
Dir1446074435/
Dir1446074793/
Dir1446075394/
Dir1446075753/
Dir1446075932/
Dir1446077135/
Dir1446077279/
Dir1446077672/
Dir1446078934/
Dir1446080027/
Dir1446080563/
Dir1446080711/
Dir1446082125/
Dir1446084409/
Dir1446085665/
Dir1446086090/
Dir1446098325/
Dir1446098927/
Dir1446099465/
Dir1446099644/
Dir1446099704/
Dir1446099764/
Dir1446100904/
Dir1446103007/
Dir1446103425/
Dir1446103726/
Dir1446103844/
Dir1446104024/
Dir1446104167/
Dir1446108524/
Dir1446109007/
Dir1446109666/
Dir1446110745/
Dir1446112001/
Dir1446112301/
Dir1446117344/
Dir1446120688/
Dir1446123088/
Dir1446123204/
Dir1446124408/
Dir1446157812/
Dir1446158173/
Dir1446158412/
Dir1446160512/
Dir1446160573/
Dir1446160815/
Dir1446161776/
Dir1446161952/
Dir1446161953/
Dir1446162673/
Dir1446163092/
Dir1446164233/
Dir1446166333/
Dir1446166981/
Dir1446167775/
Dir1446168135/
Dir1446171617/
Dir1446172634/
Dir1446173659/
Dir1446175649/
Dir1446177093/
Dir1446177901/
Dir1446178712/
Dir1446179021/
Dir1446179070/
Dir1446185551/
Dir1446185790/
Dir1446186390/
Dir1446190231/
Dir1446192570/
Dir1446192810/
Dir1446192990/
Dir1446194011/
Dir1446194668/
Dir1446195890/
Dir1446199051/
Dir1446199493/
Dir1446199661/
Dir1446200371/
Dir1446200491/
Dir1446202349/
Dir1446203971/
Dir1446207992/
Dir1446208831/
Dir1446209490/
Dir1446211290/
Dir1446211665/
Dir1446212910/
Dir1446214438/
Dir1446215732/
Dir1446215970/
Dir1446216966/
Dir1446217053/
Dir1446217832/
Dir1446219763/
Dir1446223163/
Dir1446223401/
Dir1446223526/
Dir1446224062/
Dir1446224306/
Dir1446224444/
Dir1446225335/
Dir1446225993/
Dir1446227072/
Dir1446231335/
Dir1446233251/
Dir1446234273/
Dir1446234570/
Dir1446235366/
Dir1446235506/
Dir1446235771/
Dir1446235891/
Dir1446236432/
Dir1446237507/
Dir1446245610/
Dir1446246297/
Dir1446247710/
Dir1446247949/
Dir1446248070/
Dir1446249510/
Dir1446252870/
Dir1446256470/
Dir1446258210/
Dir1446261652/
Dir1446262613/
Dir1446269093/
Dir1446273833/
Dir1446281153/
Dir1446288473/
Dir1446292561/
Dir1446294593/
Dir1446296753/
Dir1446297114/
Dir1446298133/
Dir1446304973/
Dir1446305872/
Dir1446310313/
Dir1446310492/
Dir1446312173/
Dir1446312473/
Dir1446312892/
Dir1446312952/
Dir1446317933/
Dir1446318951/
Dir1446323692/
Dir1446325072/
Dir1446326092/
Dir1446328913/
Dir1446332992/
Dir1446334069/
Dir1446337553/
Dir1446343064/
Dir1446376357/
Dir1446394477/
Dir1446399998/
Dir1446400717/
Dir1446411698/
Dir1446420870/
Dir1446422130/
Dir1446423391/
Dir1446427291/
Dir1446431311/
Dir1446431909/
Dir1446433708/
Dir1446434311/
Dir1446434880/
Dir1446439712/
Dir1446443671/
Dir1446449611/
Dir1446449792/
Dir1446449971/
Dir1446450091/
Dir1446450751/
Dir1446451772/
Dir1446453449/
Dir1446456638/
Dir1446456721/
Dir1446456807/
Dir1446457122/
Dir1446461106/
Dir1446462307/
Dir1446467886/
Dir1446469027/
Dir1446470886/
Dir1446473105/
Dir1446476424/
Dir1446476474/
Dir1446477127/
Dir1446477307/
Dir1446477965/
Dir1446480009/
Dir1446480561/
Dir1446481085/
Dir1446482288/
Dir1446483395/
Dir1446484329/
Dir1446486247/
Dir1446486615/
Dir1446486729/
Dir1446486849/
Dir1446487809/
Dir1446488227/
Dir1446488407/
Dir1446489307/
Dir1446489428/
Dir1446491527/
Dir1446491528/
Dir1446491886/
Dir1446494707/
Dir1446496806/
Dir1446498308/
Dir1446499207/
Dir1446499327/
Dir1446499810/
Dir1446499866/
Dir1446500228/
Dir1446501187/
Dir1446501426/
Dir1446504366/
Dir1446507007/
Dir1446507368/
Dir1446507907/
Dir1446508687/
Dir1446510078/
Dir1446511327/
Dir1446520104/
Dir1446524227/
Dir1446524406/
Dir1446525368/
Dir1446526148/
Dir1446531007/
Dir1446531186/
Dir1446531366/
Dir1446531548/
Dir1446532387/
Dir1446535086/
Dir1446536347/
Dir1446537727/
Dir1446537955/
Dir1446539047/
Dir1446539285/
Dir1446539466/
Dir1446543185/
Dir1446543849/
Dir1446545796/
Dir1446549210/
Dir1446549932/
Dir1446550172/
Dir1446556232/
Dir1446558751/
Dir1446559481/
Dir1446560312/
Dir1446563852/
Dir1446565172/
Dir1446566716/
Dir1446567214/
Dir1446569612/
Dir1446569672/
Dir1446571651/
Dir1446574174/
Dir1446575010/
Dir1446575192/
Dir1446576751/
Dir1446578492/
Dir1446578552/
Dir1446579152/
Dir1446583591/
Dir1446585152/
Dir1446586472/
Dir1446587731/
Dir1446588696/
Dir1446592776/
Dir1446595660/
Dir1446597333/
Dir1446603215/
Dir1446603936/
Dir1446604895/
Dir1446605634/
Dir1446605736/
Dir1446606996/
Dir1446607055/
Dir1446609096/
Dir1446610775/
Dir1446611914/
Dir1446615814/
Dir1446619236/
Dir1446620678/
Dir1446620913/
Dir1446624375/
Dir1446631115/
Dir1446631775/
Dir1446634836/
Dir1446635975/
Dir1446636696/
Dir1446637895/
Dir1446641255/
Dir1446643475/
Dir1446643655/
Dir1446645035/
Dir1446646655/
Dir1446649823/
Dir1446652293/
Dir1446654455/
Dir1446656558/
Dir1446660755/
Dir1446661896/
Dir1446662197/
Dir1446663454/
Dir1446665075/
Dir1446665914/
Dir1446666155/
Dir1446671555/
Dir1446672214/
Dir1446673114/
Dir1446673235/
Dir1446674855/
Dir1446675035/
Dir1446676355/
Dir1446676836/
Dir1446678437/
Dir1446679471/
Dir1446679475/
Dir1446679479/
Dir1446679481/
Dir1446679486/
Dir1446679487/
Dir1446679490/
Dir1446679536/
Dir1446680435/
Dir1446680615/
Dir1446682655/
Dir1446683461/
Dir1446683467/
Dir1446683469/
Dir1446683470/
Dir1446683474/
Dir1446683524/
Dir1446683622/
Dir1446683627/
Dir1446683629/
Dir1446683632/
Dir1446685295/
Dir1446685472/
Dir1446688295/
Dir1446688835/
Dir1446690155/
Dir1446692315/
Dir1446692835/
Dir1446704315/
Dir1446705214/
Dir1446708335/
Dir1446710555/
Dir1446710860/
Dir1446711095/
Dir1446712055/
Dir1446712056/
Dir1446712850/
Dir1446712896/
Dir1446713021/
Dir1446713134/
Dir1446713374/
Dir1446713432/
Dir1446715655/
Dir1446717575/
Dir1446718300/
Dir1446718357/
Dir1446718955/
Dir1446719374/
Dir1446720156/
Dir1446721894/
Dir1446722196/
Dir1446726641/
Dir1446727415/
Dir1446728255/
Dir1446728494/
Dir1446731917/
Dir1446733954/
Dir1446734075/
Dir1446735002/
Dir1446737195/
Dir1446737514/
Dir1446737522/
Dir1446737976/
Dir1446744874/
Dir1446747936/
Dir1446748245/
Dir1446754295/
Dir1446757836/
Dir1446757955/
Dir1446758255/
Dir1446759008/
Dir1446759335/
Dir1446759755/
Dir1446760595/
Dir1446760896/
Dir1446763832/
Dir1446766115/
Dir1446766175/
Dir1446767738/
Dir1446768816/
Dir1446769715/
Dir1446770555/
Dir1446770975/
Dir1446771455/
Dir1446771635/
Dir1446772297/
Dir1446773135/
Dir1446774574/
Dir1446775664/
Dir1446777999/
Dir1446780516/
Dir1446780807/
Dir1446781056/
Dir1446781294/
Dir1446782320/
Dir1446783754/
Dir1446784356/
Dir1446787174/
Dir1446787773/
Dir1446788322/
Dir1446794495/
Dir1446798935/
Dir1446799174/
Dir1446802257/
Dir1446809674/
Dir1446809854/
Dir1446809914/
Dir1446809974/
Dir1446810035/
Dir1446810154/
Dir1446810454/
Dir1446814774/
Dir1446815735/
Dir1446815914/
Dir1446817237/
Dir1446817655/
Dir1446817954/
Dir1446818435/
Dir1446821799/
Dir1446821877/
Dir1446821914/
Dir1446822704/
Dir1446823721/
Dir1446823935/
Dir1446825454/
Dir1446826176/
Dir1446826715/
Dir1446826895/
Dir1446828948/
Dir1446831154/
Dir1446831277/
Dir1446831459/
Dir1446832529/
Dir1446833246/
Dir1446833254/
Dir1446834671/
Dir1446836195/
Dir1446836376/
Dir1446836561/
Dir1446837216/
Dir1446837336/
Dir1446838118/
Dir1446841594/
Dir1446842434/
Dir1446844413/
Dir1446844414/
Dir1446845426/
Dir1446846635/
Dir1446847716/
Dir1446848557/
Dir1446848855/
Dir1446849156/
Dir1446850295/
Dir1446850835/
Dir1446851676/
Dir1446852034/
Dir1446852755/
Dir1446854376/
Dir1446854666/
Dir1446855333/
Dir1446855875/
Dir1446856225/
Dir1446860615/
Dir1446867935/
Dir1446870712/
Dir1446873755/
Dir1446888035/
Dir1446888215/
Dir1446899914/
Dir1446904595/
Dir1446907115/
Dir1446907294/
Dir1446925175/
Dir1446941266/
Dir1447007195/
Dir1447007315/
Dir1447014335/
Dir1447014514/
Dir1447030295/
Dir1447030535/
Dir1447030775/
Dir1447038696/
Dir1447042355/
Dir1447045551/
Dir1447046613/
Dir1447046735/
Dir1447050611/
Dir1447054955/
Dir1447055194/
Dir1447055374/
Dir1447055674/
Dir1447055974/
Dir1447056172/
Dir1447058751/
Dir1447077578/
Dir1447078896/
Dir1447079797/
Dir1447081174/
Dir1447083325/
Dir1447090952/
Dir1447092458/
Dir1447092690/
Dir1447093292/
Dir1447095634/
Dir1447096417/
Dir1447099650/
Dir1447101034/
Dir1447104093/
Dir1447104615/
Dir1447104933/
Dir1447105411/
Dir1447105833/
Dir1447106855/
Dir1447107454/
Dir1447114831/
Dir1447114951/
Dir1447115793/
Dir1447116331/
Dir1447118791/
Dir1447119211/
Dir1447119271/
Dir1447119331/
Dir1447120052/
Dir1447121431/
Dir1447123785/
Dir1447124011/
Dir1447124372/
Dir1447125090/
Dir1447126305/
Dir1447131092/
Dir1447133917/
Dir1447134515/
Dir1447137016/
Dir1447142763/
Dir1447143036/
Dir1447144655/
Dir1447145855/
Dir1447146515/
Dir1447146815/
Dir1447147355/
Dir1447149335/
Dir1447150535/
Dir1447151675/
Dir1447154013/
Dir1447156715/
Dir1447158035/
Dir1447158605/
Dir1447159475/
Dir1447163015/
Dir1447164403/
Dir1447169082/
Dir1447169581/
Dir1447170995/
Dir1447171657/
Dir1447172382/
Dir1447173214/
Dir1447173397/
Dir1447173514/
Dir1447174953/
Dir1447175194/
Dir1447175317/
Dir1447175675/
Dir1447176396/
Dir1447177717/
Dir1447178373/
Dir1447180259/
Dir1447181555/
Dir1447181974/
Dir1447183114/
Dir1447184914/
Dir1447188094/
Dir1447188275/
Dir1447188995/
Dir1447189115/
Dir1447189892/
Dir1447192349/
Dir1447193069/
Dir1447193911/
Dir1447195052/
Dir1447195951/
Dir1447198051/
Dir1447208492/
Dir1447209811/
Dir1447212570/
Dir1447213117/
Dir1447214880/
Dir1447215272/
Dir1447216169/
Dir1447216535/
Dir1447218641/
Dir1447219051/
Dir1447219591/
Dir1447219831/
Dir1447220731/
Dir1447221211/
Dir1447225712/
Dir1447225895/
Dir1447228651/
Dir1447228954/
Dir1447234245/
Dir1447237111/
Dir1447237832/
Dir1447238072/
Dir1447238851/
Dir1447239152/
Dir1447241552/
Dir1447241670/
Dir1447241911/
Dir1447242164/
Dir1447242334/
Dir1447242634/
Dir1447244252/
Dir1447245015/
Dir1447251151/
Dir1447252052/
Dir1447253311/
Dir1447254508/
Dir1447254752/
Dir1447254991/
Dir1447255109/
Dir1447255173/
Dir1447255291/
Dir1447255878/
Dir1447257153/
Dir1447258235/
Dir1447260632/
Dir1447260992/
Dir1447261232/
Dir1447261349/
Dir1447261712/
Dir1447263454/
Dir1447266152/
Dir1447266654/
Dir1447275451/
Dir1447277372/
Dir1447277373/
Dir1447277492/
Dir1447277551/
Dir1447277793/
Dir1447278391/
Dir1447278870/
Dir1447279891/
Dir1447280371/
Dir1447280913/
Dir1447281571/
Dir1447281811/
Dir1447285307/
Dir1447287887/
Dir1447287950/
Dir1447288206/
Dir1447288908/
Dir1447290768/
Dir1447293888/
Dir1447295027/
Dir1447298267/
Dir1447299227/
Dir1447299828/
Dir1447305707/
Dir1447315007/
Dir1447320370/
Dir1447322858/
Dir1447322925/
Dir1447325868/
Dir1447328268/
Dir1447339248/
Dir1447339967/
Dir1447340864/
Dir1447340865/
Dir1447342965/
Dir1447344108/
Dir1447344585/
Dir1447344746/
Dir1447345253/
Dir1447347285/
Dir1447348310/
Dir1447350348/
Dir1447351480/
Dir1447351661/
Dir1447352988/
Dir1447353063/
Dir1447358254/
Dir1447374397/
Dir1447376079/
Dir1447376139/
Dir1447376197/
Dir1447376256/
Dir1447377097/
Dir1447377880/
Dir1447381776/
Dir1447383770/
Dir1447388376/
Dir1447389999/
Dir1447394976/
Dir1447395278/
Dir1447400265/
Dir1447407036/
Dir1447407042/
Dir1447407511/
Dir1447408173/
Dir1447408354/
Dir1447408711/
Dir1447409132/
Dir1447409433/
Dir1447416332/
Dir1447417808/
Dir1447421851/
Dir1447424373/
Dir1447424793/
Dir1447425395/
Dir1447425696/
Dir1447426259/
Dir1447426774/
Dir1447427689/
Dir1447428109/
Dir1447428212/
Dir1447428450/
Dir1447429130/
Dir1447431346/
Dir1447432958/
Dir1447433192/
Dir1447433372/
Dir1447434302/
Dir1447435776/
Dir1447437032/
Dir1447439194/
Dir1447440511/
Dir1447440815/
Dir1447442013/
Dir1447444710/
Dir1447445491/
Dir1447445552/
Dir1447446211/
Dir1447448132/
Dir1447450713/
Dir1447451313/
Dir1447452869/
Dir1447454372/
Dir1447456113/
Dir1447456531/
Dir1447457852/
Dir1447458152/
Dir1447460132/
Dir1447465352/
Dir1447466552/
Dir1447467812/
Dir1447467991/
Dir1447472033/
Dir1447477451/
Dir1447477893/
Dir1447490911/
Dir1447507833/
Dir1447515173/
Dir1447516772/
Dir1447524633/
Dir1447536992/
Dir1447542276/
Dir1447547409/
Dir1447554033/
Dir1447554632/
Dir1447559253/
Dir1447576052/
Dir1447576936/
Dir1447588173/
Dir1447588713/
Dir1447595734/
Dir1447599633/
Dir1447606472/
Dir1447610253/
Dir1447610373/
Dir1447612052/
Dir1447612412/
Dir1447622552/
Dir1447627292/
Dir1447627293/
Dir1447628253/
Dir1447631613/
Dir1447638092/
Dir1447638453/
Dir1447643854/
Dir1447646861/
Dir1447650547/
Dir1447652079/
Dir1447657896/
Dir1447658496/
Dir1447661797/
Dir1447665517/
Dir1447670076/
Dir1447677004/
Dir1447679616/
Dir1447682014/
Dir1447685988/
Dir1447686043/
Dir1447686306/
Dir1447686515/
Dir1447686875/
Dir1447687922/
Dir1447688198/
Dir1447688681/
Dir1447688736/
Dir1447688977/
Dir1447689873/
Dir1447690426/
Dir1447691613/
Dir1447692154/
Dir1447693446/
Dir1447695400/
Dir1447696417/
Dir1447696699/
Dir1447696700/
Dir1447696704/
Dir1447696708/
Dir1447697194/
Dir1447697736/
Dir1447698697/
Dir1447698714/
Dir1447700499/
Dir1447701276/
Dir1447710996/
Dir1447711237/
Dir1447711296/
Dir1447711297/
Dir1447711475/
Dir1447711656/
Dir1447712136/
Dir1447713636/
Dir1447713758/
Dir1447714295/
Dir1447714537/
Dir1447714655/
Dir1447715079/
Dir1447715442/
Dir1447718885/
Dir1447719724/
Dir1447719843/
Dir1447719905/
Dir1447720023/
Dir1447720231/
Dir1447720503/
Dir1447721523/
Dir1447722149/
Dir1447722545/
Dir1447723687/
Dir1447723923/
Dir1447724523/
Dir1447728064/
Dir1447731302/
Dir1447733286/
Dir1447736284/
Dir1447738384/
Dir1447738744/
Dir1447740165/
Dir1447740342/
Dir1447745283/
Dir1447746483/
Dir1447747864/
Dir1447750264/
Dir1447750948/
Dir1447751464/
Dir1447752658/
Dir1447753383/
Dir1447754826/
Dir1447756444/
Dir1447760104/
Dir1447762507/
Dir1447763413/
Dir1447764065/
Dir1447766644/
Dir1447767843/
Dir1447768872/
Dir1447772808/
Dir1447773024/
Dir1447774083/
Dir1447774411/
Dir1447775344/
Dir1447776311/
Dir1447779544/
Dir1447781402/
Dir1447781945/
Dir1447782184/
Dir1447782912/
Dir1447783503/
Dir1447783702/
Dir1447784704/
Dir1447785029/
Dir1447785240/
Dir1447788664/
Dir1447788904/
Dir1447789863/
Dir1447790403/
Dir1447790825/
Dir1447795449/
Dir1447796523/
Dir1447797484/
Dir1447797743/
Dir1447800123/
Dir1447800783/
Dir1447801024/
Dir1447802193/
Dir1447803576/
Dir1447803814/
Dir1447805734/
Dir1447806095/
Dir1447808645/
Dir1447809274/
Dir1447810294/
Dir1447811974/
Dir1447813354/
Dir1447813475/
Dir1447817481/
Dir1447818035/
Dir1447818394/
Dir1447821214/
Dir1447823269/
Dir1447854565/
Dir1447854745/
Dir1447854984/
Dir1447856961/
Dir1447858406/
Dir1447861765/
Dir1447862006/
Dir1447862431/
Dir1447862906/
Dir1447863087/
Dir1447863159/
Dir1447863206/
Dir1447863622/
Dir1447864881/
Dir1447865245/
Dir1447865487/
Dir1447866865/
Dir1447867347/
Dir1447867582/
Dir1447869205/
Dir1447870960/
Dir1447872762/
Dir1447872818/
Dir1447872819/
Dir1447873720/
Dir1447874678/
Dir1447877561/
Dir1447877562/
Dir1447877629/
Dir1447878276/
Dir1447880195/
Dir1447884459/
Dir1447884700/
Dir1447884815/
Dir1447884938/
Dir1447886019/
Dir1447886379/
Dir1447887881/
Dir1447888059/
Dir1447888060/
Dir1447889199/
Dir1447889619/
Dir1447889916/
Dir1447890099/
Dir1447890162/
Dir1447890457/
Dir1447890519/
Dir1447890639/
Dir1447890823/
Dir1447890879/
Dir1447891184/
Dir1447891241/
Dir1447892438/
Dir1447893279/
Dir1447893461/
Dir1447893763/
Dir1447894296/
Dir1447895091/
Dir1447895496/
Dir1447901506/
Dir1447902640/
Dir1447903539/
Dir1447909897/
Dir1447912179/
Dir1447912539/
Dir1447917279/
Dir1447920339/
Dir1447921120/
Dir1447923459/
Dir1447924419/
Dir1447925379/
Dir1447925556/
Dir1447926040/
Dir1447926280/
Dir1447926399/
Dir1447926459/
Dir1447926579/
Dir1447926696/
Dir1447935560/
Dir1447939819/
Dir1447940119/
Dir1447941986/
Dir1447942087/
Dir1447942088/
Dir1447943046/
Dir1447944559/
Dir1447945054/
Dir1447945147/
Dir1447945989/
Dir1447948205/
Dir1447949345/
Dir1447949469/
Dir1447951867/
Dir1447954867/
Dir1447955404/
Dir1447957539/
Dir1447958319/
Dir1447960475/
Dir1447960716/
Dir1447961555/
Dir1447961735/
Dir1447962879/
Dir1447963235/
Dir1447964195/
Dir1447964798/
Dir1447965218/
Dir1447967771/
Dir1447968430/
Dir1447968550/
Dir1447969753/
Dir1447969993/
Dir1447970348/
Dir1447970852/
Dir1447971035/
Dir1447973374/
Dir1447973433/
Dir1447974399/
Dir1447983755/
Dir1447985435/
Dir1447985916/
Dir1447987236/
Dir1447990408/
Dir1447992095/
Dir1447993362/
Dir1447993921/
Dir1447994196/
Dir1447994674/
Dir1447996175/
Dir1447998514/
Dir1447999714/
Dir1448000434/
Dir1448000554/
Dir1448000974/
Dir1448003050/
Dir1448004515/
Dir1448005475/
Dir1448005714/
Dir1448010456/
Dir1448010932/
Dir1448011114/
Dir1448013575/
Dir1448019756/
Dir1448019874/
Dir1448020835/
Dir1448024802/
Dir1448025815/
Dir1448025934/
Dir1448026533/
Dir1448028265/
Dir1448028935/
Dir1448029294/
Dir1448029534/
Dir1448030973/
Dir1448034343/
Dir1448034996/
Dir1448035656/
Dir1448039376/
Dir1448039431/
Dir1448039972/
Dir1448040572/
Dir1448042494/
Dir1448043751/
Dir1448044657/
Dir1448047470/
Dir1448048195/
Dir1448049633/
Dir1448053593/
Dir1448055033/
Dir1448055210/
Dir1448056232/
Dir1448056533/
Dir1448057195/
Dir1448059056/
Dir1448059474/
Dir1448059597/
Dir1448060493/
Dir1448068007/
Dir1448068233/
Dir1448079993/
Dir1448080267/
Dir1448087612/
Dir1448090913/
Dir1448112934/
Dir1448135711/
Dir1448156113/
Dir1448185631/
Dir1448200691/
Dir1448205311/
Dir1448205431/
Dir1448220613/
Dir1448226011/
Dir1448230271/
Dir1448233271/
Dir1448244791/
Dir1448248811/
Dir1448251231/
Dir1448251946/
Dir1448255425/
Dir1448256745/
Dir1448256985/
Dir1448258621/
Dir1448262624/
Dir1448269764/
Dir1448278465/
Dir1448278645/
Dir1448279426/
Dir1448279725/
Dir1448280265/
Dir1448283744/
Dir1448285546/
Dir1448286507/
Dir1448287551/
Dir1448287922/
Dir1448288126/
Dir1448291268/
Dir1448291492/
Dir1448292093/
Dir1448292204/
Dir1448292865/
Dir1448293105/
Dir1448293343/
Dir1448293644/
Dir1448293705/
Dir1448293952/
Dir1448294006/
Dir1448294127/
Dir1448294128/
Dir1448294424/
Dir1448295505/
Dir1448299045/
Dir1448301267/
Dir1448306366/
Dir1448307559/
Dir1448309184/
Dir1448313019/
Dir1448313080/
Dir1448314279/
Dir1448314459/
Dir1448314579/
Dir1448315419/
Dir1448316224/
Dir1448316560/
Dir1448317519/
Dir1448317759/
Dir1448319499/
Dir1448320173/
Dir1448321012/
Dir1448321372/
Dir1448324072/
Dir1448326413/
Dir1448328452/
Dir1448332060/
Dir1448332173/
Dir1448333254/
Dir1448337576/
Dir1448339855/
Dir1448341534/
Dir1448344592/
Dir1448348643/
Dir1448351132/
Dir1448351252/
Dir1448351313/
Dir1448358692/
Dir1448359234/
Dir1448361573/
Dir1448364093/
Dir1448369013/
Dir1448374232/
Dir1448374892/
Dir1448375974/
Dir1448378672/
Dir1448380233/
Dir1448380593/
Dir1448380654/
Dir1448381152/
Dir1448381493/
Dir1448382814/
Dir1448383359/
Dir1448383777/
Dir1448384675/
Dir1448386003/
Dir1448386172/
Dir1448387013/
Dir1448387252/
Dir1448387433/
Dir1448388452/
Dir1448390314/
Dir1448390372/
Dir1448391094/
Dir1448391872/
Dir1448392532/
Dir1448392772/
Dir1448394514/
Dir1448394752/
Dir1448395893/
Dir1448396253/
Dir1448399733/
Dir1448400333/
Dir1448401593/
Dir1448405673/
Dir1448406390/
Dir1448407593/
Dir1448409213/
Dir1448409333/
Dir1448411672/
Dir1448413234/
Dir1448414012/
Dir1448415992/
Dir1448422001/
Dir1448422653/
Dir1448424942/
Dir1448425296/
Dir1448426193/
Dir1448426913/
Dir1448428233/
Dir1448429312/
Dir1448435255/
Dir1448435856/
Dir1448436105/
Dir1448436654/
Dir1448436752/
Dir1448442813/
Dir1448445092/
Dir1448445971/
Dir1448448814/
Dir1448451572/
Dir1448451933/
Dir1448452951/
Dir1448454391/
Dir1448456313/
Dir1448457333/
Dir1448458498/
Dir1448458499/
Dir1448459553/
Dir1448462431/
Dir1448462616/
Dir1448463275/
Dir1448463640/
Dir1448465588/
Dir1448467610/
Dir1448467835/
Dir1448470655/
Dir1448471793/
Dir1448472574/
Dir1448472694/
Dir1448473652/
Dir1448473773/
Dir1448482893/
Dir1448483672/
Dir1448484033/
Dir1448484516/
Dir1448485533/
Dir1448489470/
Dir1448491090/
Dir1448492950/
Dir1448494813/
Dir1448496315/
Dir1448496610/
Dir1448496853/
Dir1448499130/
Dir1448499131/
Dir1448511190/
Dir1448514260/
Dir1448524509/
Dir1448528350/
Dir1448529250/
Dir1448529371/
Dir1448529849/
Dir1448530453/
Dir1448530570/
Dir1448530750/
Dir1448533211/
Dir1448535069/
Dir1448535130/
Dir1448535670/
Dir1448536210/
Dir1448538469/
Dir1448539349/
Dir1448540229/
Dir1448547850/
Dir1448549531/
Dir1448551450/
Dir1448553250/
Dir1448553431/
Dir1448555110/
Dir1448555530/
Dir1448555590/
Dir1448555840/
Dir1448557451/
Dir1448557813/
Dir1448557931/
Dir1448564896/
Dir1448566390/
Dir1448566571/
Dir1448567832/
Dir1448568972/
Dir1448570234/
Dir1448570292/
Dir1448571492/
Dir1448572034/
Dir1448574852/
Dir1448577072/
Dir1448578212/
Dir1448578512/
Dir1448580492/
Dir1448581572/
Dir1448583672/
Dir1448588832/
Dir1448589968/
Dir1448591236/
Dir1448591772/
Dir1448592732/
Dir1448597173/
Dir1448597713/
Dir1448607132/
Dir1448609292/
Dir1448617092/
Dir1448619132/
Dir1448628252/
Dir1448628312/
Dir1448629093/
Dir1448630292/
Dir1448631972/
Dir1448635092/
Dir1448635452/
Dir1448639832/
Dir1448641234/
Dir1448643272/
Dir1448647892/
Dir1448650653/
Dir1448652453/
Dir1448655453/
Dir1448659952/
Dir1448664932/
Dir1448666493/
Dir1448667635/
Dir1448669673/
Dir1448672310/
Dir1448683355/
Dir1448684732/
Dir1448693612/
Dir1448693973/
Dir1448707772/
Dir1448743112/
Dir1448743232/
Dir1448759312/
Dir1448759672/
Dir1448816372/
Dir1448824292/
Dir1448829585/
Dir1448831610/
Dir1448835752/
Dir1448836832/
Dir1448839592/
Dir1448842054/
Dir1448844572/
Dir1448859811/
Dir1448860056/
Dir1448860173/
Dir1448861312/
Dir1448867853/
Dir1448868334/
Dir1448874093/
Dir1448875112/
Dir1448876492/
Dir1448876735/
Dir1448882312/
Dir1448885252/
Dir1448886273/
Dir1448886813/
Dir1448886933/
Dir1448887608/
Dir1448894853/
Dir1448898633/
Dir1448903972/
Dir1448904393/
Dir1448908211/
Dir1448912793/
Dir1448912913/
Dir1448913121/
Dir1448913159/
Dir1448914592/
Dir1448916334/
Dir1448916453/
Dir1448917558/
Dir1448917595/
Dir1448918193/
Dir1448918313/
Dir1448918854/
Dir1448919633/
Dir1448921026/
Dir1448921171/
Dir1448921553/
Dir1448921734/
Dir1448922936/
Dir1448923233/
Dir1448925093/
Dir1448925392/
Dir1448925992/
Dir1448926053/
Dir1448926054/
Dir1448926354/
Dir1448926712/
Dir1448927253/
Dir1448927312/
Dir1448928933/
Dir1448928993/
Dir1448929053/
Dir1448929472/
Dir1448929773/
Dir1448931963/
Dir1448933073/
Dir1448933734/
Dir1448933911/
Dir1448934455/
Dir1448934516/
Dir1448936490/
Dir1448938773/
Dir1448939147/
Dir1448939148/
Dir1448944414/
Dir1448944596/
Dir1448945973/
Dir1448946154/
Dir1448946936/
Dir1448947412/
Dir1448947593/
Dir1448948432/
Dir1448949212/
Dir1448954435/
Dir1448956113/
Dir1448959593/
Dir1448959951/
Dir1448960552/
Dir1448960771/
Dir1448962352/
Dir1448962953/
Dir1448963552/
Dir1448963974/
Dir1448964154/
Dir1448964225/
Dir1448964392/
Dir1448964512/
Dir1448964573/
Dir1448964692/
Dir1448965533/
Dir1448967333/
Dir1448973933/
Dir1448974592/
Dir1448976092/
Dir1448976694/
Dir1448978373/
Dir1448978628/
Dir1448978912/
Dir1448980113/
Dir1448981022/
Dir1448981314/
Dir1448981673/
Dir1448983298/
Dir1448984226/
Dir1448984553/
Dir1448989441/
Dir1448990392/
Dir1448994208/
Dir1448995522/
Dir1448996065/
Dir1448996248/
Dir1448997685/
Dir1448997801/
Dir1448999006/
Dir1448999246/
Dir1448999545/
Dir1449002785/
Dir1449003145/
Dir1449003324/
Dir1449005910/
Dir1449006630/
Dir1449006810/
Dir1449008491/
Dir1449008790/
Dir1449009210/
Dir1449010230/
Dir1449012420/
Dir1449012960/
Dir1449013259/
Dir1449013320/
Dir1449014160/
Dir1449015061/
Dir1449021240/
Dir1449021984/
Dir1449024060/
Dir1449026581/
Dir1449030061/
Dir1449031441/
Dir1449032667/
Dir1449039120/
Dir1449041581/
Dir1449042181/
Dir1449042360/
Dir1449043201/
Dir1449044700/
Dir1449045660/
Dir1449048180/
Dir1449050636/
Dir1449051120/
Dir1449061140/
Dir1449061500/
Dir1449061622/
Dir1449061981/
Dir1449064381/
Dir1449066206/
Dir1449066981/
Dir1449069385/
Dir1449069804/
Dir1449071981/
Dir1449073539/
Dir1449074126/
Dir1449074541/
Dir1449076347/
Dir1449076702/
Dir1449078206/
Dir1449082042/
Dir1449082466/
Dir1449083121/
Dir1449084385/
Dir1449084866/
Dir1449086301/
Dir1449086421/
Dir1449089961/
Dir1449090921/
Dir1449092301/
Dir1449092721/
Dir1449093381/
Dir1449093561/
Dir1449094641/
Dir1449094881/
Dir1449094941/
Dir1449095425/
Dir1449095841/
Dir1449096202/
Dir1449096381/
Dir1449096501/
Dir1449097281/
Dir1449100465/
Dir1449104661/
Dir1449104783/
Dir1449105026/
Dir1449105381/
Dir1449105802/
Dir1449106701/
Dir1449106761/
Dir1449108981/
Dir1449109102/
Dir1449113592/
Dir1449114563/
Dir1449116905/
Dir1449117321/
Dir1449123745/
Dir1449124405/
Dir1449125245/
Dir1449125601/
Dir1449128723/
Dir1449131002/
Dir1449131061/
Dir1449131301/
Dir1449132141/
Dir1449134841/
Dir1449136526/
Dir1449136645/
Dir1449136761/
Dir1449136822/
Dir1449137191/
Dir1449138141/
Dir1449140903/
Dir1449141445/
Dir1449141622/
Dir1449141801/
Dir1449143781/
Dir1449149122/
Dir1449150506/
Dir1449151822/
Dir1449151941/
Dir1449156265/
Dir1449158122/
Dir1449158242/
Dir1449159759/
Dir1449163344/
Dir1449167241/
Dir1449171024/
Dir1449171444/
Dir1449171921/
Dir1449173962/
Dir1449174381/
Dir1449177638/
Dir1449178902/
Dir1449180281/
Dir1449180822/
Dir1449183881/
Dir1449184004/
Dir1449185442/
Dir1449185742/
Dir1449185921/
Dir1449185981/
Dir1449187122/
Dir1449187938/
Dir1449189614/
Dir1449190815/
Dir1449191175/
Dir1449191475/
Dir1449191775/
Dir1449192555/
Dir1449195493/
Dir1449197295/
Dir1449198015/
Dir1449199277/
Dir1449199767/
Dir1449200716/
Dir1449202695/
Dir1449203055/
Dir1449203234/
Dir1449203895/
Dir1449205037/
Dir1449206956/
Dir1449209595/
Dir1449211038/
Dir1449224055/
Dir1449224655/
Dir1449225437/
Dir1449227012/
Dir1449237015/
Dir1449238755/
Dir1449238996/
Dir1449239596/
Dir1449240740/
Dir1449240915/
Dir1449241356/
Dir1449241560/
Dir1449241570/
Dir1449248851/
Dir1449249316/
Dir1449251656/
Dir1449253275/
Dir1449254288/
Dir1449255069/
Dir1449256035/
Dir1449256209/
Dir1449259433/
Dir1449263848/
Dir1449263968/
Dir1449264808/
Dir1449264869/
Dir1449265289/
Dir1449266129/
Dir1449271346/
Dir1449273566/
Dir1449280890/
Dir1449281071/
Dir1449281206/
Dir1449283587/
Dir1449287190/
Dir1449292047/
Dir1449296971/
Dir1449299607/
Dir1449305008/
Dir1449308371/
Dir1449309151/
Dir1449320910/
Dir1449329910/
Dir1449331961/
Dir1449346591/
Dir1449347371/
Dir1449348031/
Dir1449351268/
Dir1449393691/
Dir1449420691/
Dir1449428549/
Dir1449436170/
Dir1449444871/
Dir1449453690/
Dir1449454588/
Dir1449454770/
Dir1449463950/
Dir1449466235/
Dir1449467490/
Dir1449483690/
Dir1449487470/
Dir1449491610/
Dir1449496295/
Dir1449497252/
Dir1449500723/
Dir1449504810/
Dir1449506139/
Dir1449516031/
Dir1449527847/
Dir1449529647/
Dir1449530122/
Dir1449531626/
Dir1449531805/
Dir1449534206/
Dir1449560242/
Dir1449562105/
Dir1449564684/
Dir1449564744/
Dir1449570385/
Dir1449570505/
Dir1449593961/
Dir1449597342/
Dir1449597942/
Dir1449599422/
Dir1449604062/
Dir1449604662/
Dir1449605443/
Dir1449606520/
Dir1449606700/
Dir1449613004/
Dir1449614261/
Dir1449614982/
Dir1449615161/
Dir1449626601/
Dir1449630141/
Dir1449630163/
Dir1449630165/
Dir1449630362/
Dir1449630373/
Dir1449630374/
Dir1449630377/
Dir1449630452/
Dir1449630455/
Dir1449630538/
Dir1449630586/
Dir1449630608/
Dir1449630681/
Dir1449630697/
Dir1449630857/
Dir1449635864/
Dir1449654342/
Dir1449654457/
Dir1449656742/
Dir1449660222/
Dir1449660523/
Dir1449668443/
Dir1449673002/
Dir1449673522/
Dir1449674142/
Dir1449676422/
Dir1449676901/
Dir1449677080/
Dir1449677440/
Dir1449678042/
Dir1449678939/
Dir1449679064/
Dir1449679303/
Dir1449680383/
Dir1449684896/
Dir1449685363/
Dir1449695922/
Dir1449696582/
Dir1449697480/
Dir1449697660/
Dir1449700182/
Dir1449700299/
Dir1449700663/
Dir1449701258/
Dir1449703303/
Dir1449714103/
Dir1449715959/
Dir1449719985/
Dir1449737982/
Dir1449738357/
Dir1449738643/
Dir1449742483/
Dir1449747283/
Dir1449750605/
Dir1449752615/
Dir1449761022/
Dir1449761872/
Dir1449763253/
Dir1449766793/
Dir1449767182/
Dir1449767330/
Dir1449767509/
Dir1449767873/
Dir1449771769/
Dir1449772213/
Dir1449772913/
Dir1449773332/
Dir1449774592/
Dir1449775073/
Dir1449779152/
Dir1449779332/
Dir1449779393/
Dir1449779573/
Dir1449780589/
Dir1449780712/
Dir1449782136/
Dir1449782320/
Dir1449782797/
Dir1449783032/
Dir1449783877/
Dir1449784415/
Dir1449788918/
Dir1449793805/
Dir1449797078/
Dir1449802268/
Dir1449804738/
Dir1449814597/
Dir1449815419/
Dir1449818557/
Dir1449821618/
Dir1449821678/
Dir1449821978/
Dir1449822157/
Dir1449822277/
Dir1449824438/
Dir1449824499/
Dir1449826207/
Dir1449830558/
Dir1449837002/
Dir1449845498/
Dir1449847293/
Dir1449847652/
Dir1449847986/
Dir1449848493/
Dir1449850710/
Dir1449852152/
Dir1449852812/
Dir1449853710/
Dir1449855394/
Dir1449857733/
Dir1449858617/
Dir1449858812/
Dir1449861511/
Dir1449862292/
Dir1449863611/
Dir1449869406/
Dir1449898351/
Dir1449901810/
Dir1449930032/
Dir1449934446/
Dir1449946351/
Dir1449947611/
Dir1449948931/
Dir1449954394/
Dir1449955806/
Dir1449968432/
Dir1449976232/
Dir1449977511/
Dir1450045471/
Dir1450045651/
Dir1450053002/
Dir1450054711/
Dir1450056092/
Dir1450056751/
Dir1450056811/
Dir1450060651/
Dir1450061241/
Dir1450074993/
Dir1450079851/
Dir1450080201/
Dir1450080512/
Dir1450081532/
Dir1450082132/
Dir1450085403/
Dir1450087055/
Dir1450091251/
Dir1450096212/
Dir1450103371/
Dir1450103731/
Dir1450103853/
Dir1450104751/
Dir1450105764/
Dir1450107217/
Dir1450109209/
Dir1450112013/
Dir1450112611/
Dir1450116332/
Dir1450117471/
Dir1450117808/
Dir1450119332/
Dir1450122151/
Dir1450122513/
Dir1450122744/
Dir1450123165/
Dir1450123464/
Dir1450123824/
Dir1450125866/
Dir1450126464/
Dir1450128667/
Dir1450128805/
Dir1450129285/
Dir1450129945/
Dir1450130061/
Dir1450132232/
Dir1450133121/
Dir1450133305/
Dir1450134741/
Dir1450137140/
Dir1450137556/
Dir1450137684/
Dir1450138391/
Dir1450138509/
Dir1450139430/
Dir1450144211/
Dir1450144329/
Dir1450150364/
Dir1450150931/
Dir1450151710/
Dir1450153331/
Dir1450157650/
Dir1450160590/
Dir1450173807/
Dir1450182606/
Dir1450186691/
Dir1450187591/
Dir1450187830/
Dir1450188790/
Dir1450188850/
Dir1450189090/
Dir1450190848/
Dir1450191030/
Dir1450192109/
Dir1450192227/
Dir1450195852/
Dir1450201769/
Dir1450204595/
Dir1450205309/
Dir1450205369/
Dir1450207409/
Dir1450214913/
Dir1450217998/
Dir1450218298/
Dir1450218477/
Dir1450219377/
Dir1450219858/
Dir1450220875/
Dir1450221115/
Dir1450223638/
Dir1450223998/
Dir1450224968/
Dir1450226709/
Dir1450228746/
Dir1450230366/
Dir1450230846/
Dir1450236486/
Dir1450239846/
Dir1450245486/
Dir1450254546/
Dir1450256608/
Dir1450257426/
Dir1450259766/
Dir1450259948/
Dir1450260967/
Dir1450262706/
Dir1450263246/
Dir1450263846/
Dir1450263847/
Dir1450264624/
Dir1450264748/
Dir1450265346/
Dir1450266966/
Dir1450269484/
Dir1450270999/
Dir1450273394/
Dir1450276266/
Dir1450276567/
Dir1450278919/
Dir1450280646/
Dir1450282000/
Dir1450282117/
Dir1450282539/
Dir1450286917/
Dir1450287877/
Dir1450298460/
Dir1450298519/
Dir1450298699/
Dir1450298939/
Dir1450298940/
Dir1450299120/
Dir1450299360/
Dir1450300260/
Dir1450300319/
Dir1450300619/
Dir1450301160/
Dir1450301698/
Dir1450301939/
Dir1450302360/
Dir1450302420/
Dir1450303258/
Dir1450304159/
Dir1450305360/
Dir1450306140/
Dir1450306261/
Dir1450306620/
Dir1450306739/
Dir1450307017/
Dir1450310039/
Dir1450310339/
Dir1450311360/
Dir1450312379/
Dir1450313156/
Dir1450314237/
Dir1450317153/
Dir1450317995/
Dir1450320932/
Dir1450321952/
Dir1450322072/
Dir1450322193/
Dir1450322312/
Dir1450323149/
Dir1450324712/
Dir1450328192/
Dir1450337431/
Dir1450337911/
Dir1450338272/
Dir1450338392/
Dir1450338632/
Dir1450339433/
Dir1450344572/
Dir1450346312/
Dir1450350271/
Dir1450353690/
Dir1450358070/
Dir1450364806/
Dir1450365150/
Dir1450366831/
Dir1450369590/
Dir1450370012/
Dir1450370248/
Dir1450370435/
Dir1450373731/
Dir1450373911/
Dir1450377952/
Dir1450379752/
Dir1450380113/
Dir1450381618/
Dir1450381972/
Dir1450383235/
Dir1450383355/
Dir1450386413/
Dir1450387912/
Dir1450390791/
Dir1450390792/
Dir1450391519/
Dir1450391631/
Dir1450392175/
Dir1450393672/
Dir1450397933/
Dir1450399191/
Dir1450400617/
Dir1450404053/
Dir1450404218/
Dir1450405552/
Dir1450408974/
Dir1450410368/
Dir1450410711/
Dir1450421752/
Dir1450421876/
Dir1450426132/
Dir1450426312/
Dir1450427272/
Dir1450428292/
Dir1450429132/
Dir1450429852/
Dir1450433636/
Dir1450434591/
Dir1450440833/
Dir1450443833/
Dir1450445571/
Dir1450447311/
Dir1450448812/
Dir1450448936/
Dir1450450194/
Dir1450451874/
Dir1450452358/
Dir1450454391/
Dir1450454769/
Dir1450455472/
Dir1450456374/
Dir1450457516/
Dir1450457875/
Dir1450457991/
Dir1450464330/
Dir1450464510/
Dir1450465054/
Dir1450465470/
Dir1450466250/
Dir1450467693/
Dir1450468350/
Dir1450469191/
Dir1450471470/
Dir1450473570/
Dir1450473810/
Dir1450475250/
Dir1450476351/
Dir1450476810/
Dir1450477650/
Dir1450478610/
Dir1450480412/
Dir1450481190/
Dir1450481609/
Dir1450487850/
Dir1450488030/
Dir1450489231/
Dir1450495470/
Dir1450536090/
Dir1450559850/
Dir1450572990/
Dir1450622970/
Dir1450665509/
Dir1450674689/
Dir1450685429/
Dir1450687287/
Dir1450688489/
Dir1450690109/
Dir1450690289/
Dir1450690409/
Dir1450690949/
Dir1450691129/
Dir1450692629/
Dir1450693829/
Dir1450694370/
Dir1450695510/
Dir1450697126/
Dir1450699765/
Dir1450708648/
Dir1450708769/
Dir1450710871/
Dir1450711290/
Dir1450711348/
Dir1450715069/
Dir1450716689/
Dir1450718606/
Dir1450721486/
Dir1450721546/
Dir1450722509/
Dir1450723589/
Dir1450724549/
Dir1450727429/
Dir1450729769/
Dir1450730609/
Dir1450732271/
Dir1450732512/
Dir1450733121/
Dir1450733589/
Dir1450734550/
Dir1450737224/
Dir1450737284/
Dir1450737645/
Dir1450737823/
Dir1450738631/
Dir1450738688/
Dir1450743738/
Dir1450744398/
Dir1450744518/
Dir1450745655/
Dir1450745898/
Dir1450746557/
Dir1450748898/
Dir1450753567/
Dir1450753938/
Dir1450760898/
Dir1450763959/
Dir1450765278/
Dir1450766178/
Dir1450766958/
Dir1450767378/
Dir1450767678/
Dir1450773737/
Dir1450776378/
Dir1450779136/
Dir1450781301/
Dir1450784839/
Dir1450786636/
Dir1450789938/
Dir1450790599/
Dir1450791258/
Dir1450792699/
Dir1450793727/
Dir1450793787/
Dir1450795347/
Dir1450797327/
Dir1450798320/
Dir1450800928/
Dir1450801647/
Dir1450802127/
Dir1450802309/
Dir1450803208/
Dir1450804107/
Dir1450805126/
Dir1450808847/
Dir1450809016/
Dir1450814247/
Dir1450814738/
Dir1450817067/
Dir1450818214/
Dir1450819527/
Dir1450820067/
Dir1450821267/
Dir1450821867/
Dir1450822646/
Dir1450826667/
Dir1450827267/
Dir1450830613/
Dir1450831527/
Dir1450832733/
Dir1450836388/
Dir1450837887/
Dir1450838307/
Dir1450843947/
Dir1450846827/
Dir1450852212/
Dir1450853368/
Dir1450855288/
Dir1450860627/
Dir1450863005/
Dir1450863507/
Dir1450867048/
Dir1450871308/
Dir1450873803/
Dir1450879887/
Dir1450880428/
Dir1450881867/
Dir1450882286/
Dir1450882527/
Dir1450882955/
Dir1450883271/
Dir1450886490/
Dir1450886804/
Dir1450887869/
Dir1450888046/
Dir1450889732/
Dir1450889909/
Dir1450892372/
Dir1450895450/
Dir1450897769/
Dir1450900651/
Dir1450901129/
Dir1450901549/
Dir1450902089/
Dir1450902628/
Dir1450903949/
Dir1450904430/
Dir1450904743/
Dir1450904909/
Dir1450906215/
Dir1450906587/
Dir1450907112/
Dir1450908371/
Dir1450908433/
Dir1450914432/
Dir1450916772/
Dir1450917032/
Dir1450918392/
Dir1450918941/
Dir1450922538/
Dir1450923851/
Dir1450925712/
Dir1450926491/
Dir1450927903/
Dir1450928111/
Dir1450928173/
Dir1450930451/
Dir1450933151/
Dir1450933812/
Dir1450937291/
Dir1450938613/
Dir1450949403/
Dir1450953191/
Dir1450956990/
Dir1450960204/
Dir1450975427/
Dir1450978847/
Dir1450979207/
Dir1450979807/
Dir1450981127/
Dir1450981832/
Dir1450984065/
Dir1450984547/
Dir1450984847/
Dir1450986287/
Dir1450991387/
Dir1450993727/
Dir1451003407/
Dir1451011667/
Dir1451014304/
Dir1451082167/
Dir1451089804/
Dir1451094708/
Dir1451128247/
Dir1451133004/
Dir1451155367/
Dir1451165405/
Dir1451172047/
Dir1451176547/
Dir1451187131/
Dir1451212967/
Dir1451219425/
Dir1451229107/
Dir1451229707/
Dir1451230127/
Dir1451230479/
Dir1451245427/
Dir1451251787/
Dir1451251805/
Dir1451253107/
Dir1451255627/
Dir1451260547/
Dir1451295887/
Dir1451296067/
Dir1451297267/
Dir1451300867/
Dir1451304767/
Dir1451305804/
Dir1451311392/
Dir1451315406/
Dir1451316527/
Dir1451328452/
Dir1451332352/
Dir1451333242/
Dir1451338101/
Dir1451342375/
Dir1451342558/
Dir1451342978/
Dir1451343910/
Dir1451345558/
Dir1451346758/
Dir1451349038/
Dir1451349576/
Dir1451349644/
Dir1451349758/
Dir1451354258/
Dir1451354377/
Dir1451357378/
Dir1451364878/
Dir1451377478/
Dir1451378200/
Dir1451380178/
Dir1451380238/
Dir1451380358/
Dir1451382163/
Dir1451383178/
Dir1451386538/
Dir1451387678/
Dir1451388038/
Dir1451389298/
Dir1451390800/
Dir1451395778/
Dir1451397638/
Dir1451397910/
Dir1451399078/
Dir1451399738/
Dir1451400515/
Dir1451403338/
Dir1451403997/
Dir1451404176/
Dir1451405199/
Dir1451407422/
Dir1451412218/
Dir1451412219/
Dir1451412641/
Dir1451412815/
Dir1451414630/
Dir1451421399/
Dir1451421818/
Dir1451424038/
Dir1451428298/
Dir1451429078/
Dir1451431238/
Dir1451432976/
Dir1451435498/
Dir1451445460/
Dir1451446418/
Dir1451454880/
Dir1451463038/
Dir1451465678/
Dir1451469338/
Dir1451469398/
Dir1451471918/
Dir1451474199/
Dir1451476598/
Dir1451478218/
Dir1451478698/
Dir1451482478/
Dir1451484095/
Dir1451484998/
Dir1451495918/
Dir1451497418/
Dir1451500778/
Dir1451501798/
Dir1451502098/
Dir1451503298/
Dir1451505964/
Dir1451506718/
Dir1451506837/
Dir1451507678/
Dir1451510136/
Dir1451511338/
Dir1451511818/
Dir1451513125/
Dir1451513319/
Dir1451514757/
Dir1451515718/
Dir1451515775/
Dir1451515958/
Dir1451516815/
Dir1451517098/
Dir1451517518/
Dir1451518476/
Dir1451519018/
Dir1451519498/
Dir1451519738/
Dir1451521118/
Dir1451521238/
Dir1451521779/
Dir1451522138/
Dir1451526158/
Dir1451528499/
Dir1451531558/
Dir1451532578/
Dir1451533958/
Dir1451536658/
Dir1451538098/
Dir1451540797/
Dir1451547518/
Dir1451549618/
Dir1451557959/
Dir1451565173/
Dir1451565234/
Dir1451565237/
Dir1451565240/
Dir1451565243/
Dir1451565246/
Dir1451568278/
Dir1451569718/
Dir1451585378/
Dir1451587239/
Dir1451590418/
Dir1451591440/
Dir1451594378/
Dir1451597918/
Dir1451598458/
Dir1451601998/
Dir1451602298/
Dir1451604278/
Dir1451604758/
Dir1451606018/
Dir1451606594/
Dir1451606799/
Dir1451607219/
Dir1451617718/
Dir1451642196/
Dir1451645499/
Dir1451657018/
Dir1451665720/
Dir1451681018/
Dir1451686718/
Dir1451694700/
Dir1451699018/
Dir1451786198/
Dir1451791118/
Dir1451858618/
Dir1451858918/
Dir1451859638/
Dir1451859998/
Dir1451863538/
Dir1451864856/
Dir1451872598/
Dir1451876316/
Dir1451877578/
Dir1451887478/
Dir1451887718/
Dir1451894582/
Dir1451894703/
Dir1451894856/
Dir1451895098/
Dir1451895218/
Dir1451895398/
Dir1451908776/
Dir1451910605/
Dir1451911418/
Dir1451911838/
Dir1451915498/
Dir1451918378/
Dir1451919218/
Dir1451920835/
Dir1451921589/
Dir1451923010/
Dir1451929598/
Dir1451932217/
Dir1451932479/
Dir1451934211/
Dir1451934331/
Dir1451934570/
Dir1451935231/
Dir1451936129/
Dir1451936791/
Dir1451937090/
Dir1451937448/
Dir1451937810/
Dir1451940028/
Dir1451941950/
Dir1451942071/
Dir1451943040/
Dir1451943051/
Dir1451943450/
Dir1451943873/
Dir1451944291/
Dir1451945111/
Dir1451945610/
Dir1451945852/
Dir1451946570/
Dir1451947291/
Dir1451947708/
Dir1451948479/
Dir1451949019/
Dir1451949978/
Dir1451953538/
Dir1451953826/
Dir1451954860/
Dir1451954981/
Dir1451955460/
Dir1451956360/
Dir1451959396/
Dir1451962903/
Dir1451963861/
Dir1451964521/
Dir1451964686/
Dir1451966389/
Dir1451966440/
Dir1451966741/
Dir1451973396/
Dir1451978138/
Dir1451985340/
Dir1451986228/
Dir1451986840/
Dir1451987141/
Dir1451987559/
Dir1451988100/
Dir1451988581/
Dir1451991802/
Dir1451991924/
Dir1451992901/
Dir1451997029/
Dir1451998300/
Dir1451999108/
Dir1452003581/
Dir1452005377/
Dir1452007004/
Dir1452008007/
Dir1452008010/
Dir1452008445/
Dir1452010120/
Dir1452010419/
Dir1452012041/
Dir1452012697/
Dir1452012764/
Dir1452012881/
Dir1452013964/
Dir1452014261/
Dir1452014560/
Dir1452014750/
Dir1452017849/
Dir1452018651/
Dir1452021210/
Dir1452021270/
Dir1452024149/
Dir1452024317/
Dir1452024332/
Dir1452024388/
Dir1452025501/
Dir1452025561/
Dir1452025683/
Dir1452026161/
Dir1452026405/
Dir1452027300/
Dir1452028052/
Dir1452028647/
Dir1452029310/
Dir1452029967/
Dir1452032852/
Dir1452035731/
Dir1452040232/
Dir1452041406/
Dir1452041588/
Dir1452045367/
Dir1452045609/
Dir1452045745/
Dir1452045814/
Dir1452045928/
Dir1452046148/
Dir1452047168/
Dir1452047588/
Dir1452048128/
Dir1452048186/
Dir1452048904/
Dir1452049148/
Dir1452049350/
Dir1452051084/
Dir1452053015/
Dir1452053348/
Dir1452055267/
Dir1452055509/
Dir1452055868/
Dir1452056944/
Dir1452060010/
Dir1452060667/
Dir1452062285/
Dir1452065468/
Dir1452069247/
Dir1452069429/
Dir1452072643/
Dir1452074605/
Dir1452075067/
Dir1452082147/
Dir1452082208/
Dir1452085027/
Dir1452088447/
Dir1452089647/
Dir1452091148/
Dir1452091813/
Dir1452091870/
Dir1452092168/
Dir1452094407/
Dir1452094866/
Dir1452095064/
Dir1452097211/
Dir1452099184/
Dir1452099366/
Dir1452100035/
Dir1452100165/
Dir1452104226/
Dir1452104646/
Dir1452104708/
Dir1452107647/
Dir1452108968/
Dir1452109987/
Dir1452110227/
Dir1452110644/
Dir1452110768/
Dir1452111365/
Dir1452111606/
Dir1452113887/
Dir1452114205/
Dir1452114546/
Dir1452115149/
Dir1452115812/
Dir1452116288/
Dir1452117808/
Dir1452118987/
Dir1452119227/
Dir1452119527/
Dir1452119947/
Dir1452121808/
Dir1452121866/
Dir1452123187/
Dir1452123368/
Dir1452123727/
Dir1452124746/
Dir1452126007/
Dir1452126609/
Dir1452127024/
Dir1452130146/
Dir1452131827/
Dir1452135124/
Dir1452136268/
Dir1452136508/
Dir1452137530/
Dir1452137534/
Dir1452142507/
Dir1452143167/
Dir1452143407/
Dir1452143767/
Dir1452146106/
Dir1452147730/
Dir1452148362/
Dir1452150550/
Dir1452151627/
Dir1452153188/
Dir1452158467/
Dir1452159027/
Dir1452159424/
Dir1452160507/
Dir1452161887/
Dir1452165607/
Dir1452165670/
Dir1452167885/
Dir1452169747/
Dir1452169804/
Dir1452170107/
Dir1452171668/
Dir1452172508/
Dir1452173764/
Dir1452176708/
Dir1452180798/
Dir1452181227/
Dir1452182067/
Dir1452182127/
Dir1452182365/
Dir1452182545/
Dir1452184302/
Dir1452184707/
Dir1452185365/
Dir1452188005/
Dir1452189266/
Dir1452189745/
Dir1452190528/
Dir1452190707/
Dir1452190885/
Dir1452191479/
Dir1452191496/
Dir1452192387/
Dir1452194247/
Dir1452194727/
Dir1452195088/
Dir1452197788/
Dir1452198626/
Dir1452199050/
Dir1452202227/
Dir1452204505/
Dir1452205046/
Dir1452207805/
Dir1452209873/
Dir1452210591/
Dir1452211548/
Dir1452212931/
Dir1452215812/
Dir1452215872/
Dir1452218091/
Dir1452219291/
Dir1452221031/
Dir1452223984/
Dir1452224091/
Dir1452224811/
Dir1452225231/
Dir1452225516/
Dir1452225568/
Dir1452225823/
Dir1452225832/
Dir1452225833/
Dir1452225846/
Dir1452225990/
Dir1452226194/
Dir1452226195/
Dir1452226272/
Dir1452226286/
Dir1452226772/
Dir1452226860/
Dir1452227001/
Dir1452227134/
Dir1452227136/
Dir1452227138/
Dir1452227141/
Dir1452227143/
Dir1452227144/
Dir1452227145/
Dir1452227188/
Dir1452227255/
Dir1452227363/
Dir1452227391/
Dir1452227433/
Dir1452227652/
Dir1452227767/
Dir1452227769/
Dir1452228007/
Dir1452228028/
Dir1452228158/
Dir1452228159/
Dir1452228161/
Dir1452228164/
Dir1452229131/
Dir1452231113/
Dir1452234616/
Dir1452234831/
Dir1452239691/
Dir1452241011/
Dir1452242031/
Dir1452242271/
Dir1452245391/
Dir1452245407/
Dir1452247070/
Dir1452247554/
Dir1452248271/
Dir1452249111/
Dir1452256214/
Dir1452257812/
Dir1452263035/
Dir1452264353/
Dir1452266451/
Dir1452267293/
Dir1452269331/
Dir1452269514/
Dir1452269750/
Dir1452272620/
Dir1452277891/
Dir1452279152/
Dir1452279213/
Dir1452280653/
Dir1452280712/
Dir1452280889/
Dir1452284012/
Dir1452285333/
Dir1452285873/
Dir1452286174/
Dir1452287070/
Dir1452288091/
Dir1452288619/
Dir1452289173/
Dir1452290732/
Dir1452292293/
Dir1452299407/
Dir1452307713/
Dir1452310772/
Dir1452311234/
Dir1452311238/
Dir1452311266/
Dir1452311269/
Dir1452311270/
Dir1452311273/
Dir1452311274/
Dir1452311276/
Dir1452311280/
Dir1452311435/
Dir1452311437/
Dir1452311438/
Dir1452311440/
Dir1452311442/
Dir1452311445/
Dir1452311446/
Dir1452311471/
Dir1452311481/
Dir1452311596/
Dir1452311601/
Dir1452311602/
Dir1452311605/
Dir1452311636/
Dir1452311726/
Dir1452311752/
Dir1452311772/
Dir1452311775/
Dir1452311817/
Dir1452311834/
Dir1452311838/
Dir1452311857/
Dir1452311922/
Dir1452312016/
Dir1452312036/
Dir1452312125/
Dir1452312131/
Dir1452312137/
Dir1452312196/
Dir1452312302/
Dir1452312303/
Dir1452312304/
Dir1452312305/
Dir1452312309/
Dir1452312312/
Dir1452312588/
Dir1452312596/
Dir1452312602/
Dir1452312605/
Dir1452312608/
Dir1452312614/
Dir1452312650/
Dir1452312672/
Dir1452312674/
Dir1452312800/
Dir1452312885/
Dir1452312952/
Dir1452312972/
Dir1452312979/
Dir1452312982/
Dir1452312985/
Dir1452312986/
Dir1452313183/
Dir1452313283/
Dir1452313365/
Dir1452313370/
Dir1452313409/
Dir1452313413/
Dir1452313511/
Dir1452313529/
Dir1452313771/
Dir1452313779/
Dir1452313824/
Dir1452313835/
Dir1452313855/
Dir1452313943/
Dir1452313946/
Dir1452313948/
Dir1452313966/
Dir1452314013/
Dir1452314050/
Dir1452314058/
Dir1452314063/
Dir1452319413/
Dir1452320792/
Dir1452321046/
Dir1452326630/
Dir1452338012/
Dir1452342606/
Dir1452369393/
Dir1452369634/
Dir1452372932/
Dir1452378754/
Dir1452380852/
Dir1452382893/
Dir1452383972/
Dir1452385811/
Dir1452401253/
Dir1452403593/
Dir1452434613/
Dir1452435212/
Dir1452439962/
Dir1452462993/
Dir1452463233/
Dir1452465632/
Dir1452468512/
Dir1452469352/
Dir1452469772/
Dir1452472207/
Dir1452478660/
Dir1452480634/
Dir1452483321/
Dir1452486896/
Dir1452489569/
Dir1452492232/
Dir1452493652/
Dir1452493834/
Dir1452496353/
Dir1452500794/
Dir1452502233/
Dir1452504607/
Dir1452507093/
Dir1452509913/
Dir1452511052/
Dir1452511173/
Dir1452515406/
Dir1452515612/
Dir1452521133/
Dir1452521613/
Dir1452524179/
Dir1452525330/
Dir1452525447/
Dir1452526463/
Dir1452526465/
Dir1452529524/
Dir1452532529/
Dir1452534928/
Dir1452536068/
Dir1452536548/
Dir1452537079/
Dir1452537394/
Dir1452537690/
Dir1452537994/
Dir1452538048/
Dir1452538468/
Dir1452540092/
Dir1452542496/
Dir1452543509/
Dir1452544412/
Dir1452545250/
Dir1452545852/
Dir1452547712/
Dir1452547819/
Dir1452547829/
Dir1452549452/
Dir1452550114/
Dir1452550228/
Dir1452550892/
Dir1452556877/
Dir1452557180/
Dir1452557241/
Dir1452557299/
Dir1452557359/
Dir1452558440/
Dir1452558664/
Dir1452560360/
Dir1452561502/
Dir1452563899/
Dir1452564619/
Dir1452566121/
Dir1452568557/
Dir1452568675/
Dir1452568793/
Dir1452569573/
Dir1452571559/
Dir1452572093/
Dir1452572395/
Dir1452575335/
Dir1452577974/
Dir1452579355/
Dir1452579536/
Dir1452580214/
Dir1452582955/
Dir1452583316/
Dir1452585056/
Dir1452585175/
Dir1452585295/
Dir1452585475/
Dir1452588474/
Dir1452589315/
Dir1452590456/
Dir1452591534/
Dir1452592555/
Dir1452594295/
Dir1452595491/
Dir1452596217/
Dir1452597115/
Dir1452597896/
Dir1452598974/
Dir1452601736/
Dir1452601814/
Dir1452604916/
Dir1452605215/
Dir1452607546/
Dir1452608146/
Dir1452608387/
Dir1452609045/
Dir1452610183/
Dir1452612977/
Dir1452617026/
Dir1452617146/
Dir1452617276/
Dir1452617332/
Dir1452617333/
Dir1452617385/
Dir1452617445/
Dir1452617684/
Dir1452618235/
Dir1452618405/
Dir1452618465/
Dir1452618587/
Dir1452619125/
Dir1452619246/
Dir1452619845/
Dir1452619965/
Dir1452620084/
Dir1452621465/
Dir1452622653/
Dir1452623070/
Dir1452623498/
Dir1452625596/
Dir1452625709/
Dir1452625832/
Dir1452626130/
Dir1452626370/
Dir1452629730/
Dir1452630390/
Dir1452630451/
Dir1452632745/
Dir1452633751/
Dir1452634214/
Dir1452634349/
Dir1452634473/
Dir1452634651/
Dir1452635070/
Dir1452636031/
Dir1452637650/
Dir1452637711/
Dir1452638130/
Dir1452638910/
Dir1452639391/
Dir1452639750/
Dir1452641373/
Dir1452641491/
Dir1452641969/
Dir1452642031/
Dir1452643520/
Dir1452643531/
Dir1452643532/
Dir1452644311/
Dir1452645008/
Dir1452645930/
Dir1452646291/
Dir1452646532/
Dir1452647193/
Dir1452647430/
Dir1452647491/
Dir1452649831/
Dir1452650310/
Dir1452651690/
Dir1452653791/
Dir1452656730/
Dir1452659970/
Dir1452666708/
Dir1452669210/
Dir1452674611/
Dir1452676410/
Dir1452676950/
Dir1452677251/
Dir1452677314/
Dir1452677451/
Dir1452680311/
Dir1452680850/
Dir1452682771/
Dir1452684510/
Dir1452686070/
Dir1452688221/
Dir1452690090/
Dir1452690991/
Dir1452693921/
Dir1452696454/
Dir1452697172/
Dir1452699113/
Dir1452699451/
Dir1452699990/
Dir1452700833/
Dir1452704911/
Dir1452705930/
Dir1452706231/
Dir1452709531/
Dir1452709875/
Dir1452711511/
Dir1452711631/
Dir1452712291/
Dir1452712891/
Dir1452714031/
Dir1452714271/
Dir1452714454/
Dir1452715292/
Dir1452716311/
Dir1452717930/
Dir1452717991/
Dir1452718051/
Dir1452718232/
Dir1452718711/
Dir1452718831/
Dir1452719072/
Dir1452719970/
Dir1452720626/
Dir1452722970/
Dir1452724471/
Dir1452726223/
Dir1452726870/
Dir1452727050/
Dir1452728551/
Dir1452728611/
Dir1452728791/
Dir1452729093/
Dir1452730535/
Dir1452731370/
Dir1452732752/
Dir1452734792/
Dir1452734912/
Dir1452735271/
Dir1452738935/
Dir1452739469/
Dir1452740672/
Dir1452742482/
Dir1452742778/
Dir1452744092/
Dir1452745030/
Dir1452746796/
Dir1452748834/
Dir1452750751/
Dir1452751231/
Dir1452751599/
Dir1452753511/
Dir1452754833/
Dir1452755253/
Dir1452755371/
Dir1452755611/
Dir1452756992/
Dir1452758848/
Dir1452761071/
Dir1452762991/
Dir1452763111/
Dir1452763233/
Dir1452763651/
Dir1452763769/
Dir1452763841/
Dir1452764071/
Dir1452764732/
Dir1452768391/
Dir1452769112/
Dir1452770191/
Dir1452774618/
Dir1452774930/
Dir1452777272/
Dir1452780150/
Dir1452780931/
Dir1452781111/
Dir1452781352/
Dir1452781471/
Dir1452781530/
Dir1452781951/
Dir1452785653/
Dir1452787591/
Dir1452788006/
Dir1452788009/
Dir1452788013/
Dir1452788016/
Dir1452789718/
Dir1452793498/
Dir1452794936/
Dir1452796281/
Dir1452796796/
Dir1452797036/
Dir1452797396/
Dir1452798718/
Dir1452799436/
Dir1452800456/
Dir1452800996/
Dir1452801056/
Dir1452803817/
Dir1452803876/
Dir1452803936/
Dir1452804956/
Dir1452805437/
Dir1452806457/
Dir1452807012/
Dir1452807116/
Dir1452807956/
Dir1452808017/
Dir1452808617/
Dir1452809276/
Dir1452809576/
Dir1452811494/
Dir1452811619/
Dir1452812217/
Dir1452812516/
Dir1452812635/
Dir1452813837/
Dir1452817853/
Dir1452818759/
Dir1452820902/
Dir1452825462/
Dir1452826782/
Dir1452828697/
Dir1452839201/
Dir1452842022/
Dir1452842200/
Dir1452843341/
Dir1452844962/
Dir1452845441/
Dir1452846401/
Dir1452846821/
Dir1452847601/
Dir1452848621/
Dir1452850231/
Dir1452851322/
Dir1452853721/
Dir1452854985/
Dir1452861581/
Dir1452866381/
Dir1452868000/
Dir1452870502/
Dir1452872060/
Dir1452872062/
Dir1452872451/
Dir1452874903/
Dir1452875564/
Dir1452876821/
Dir1452876941/
Dir1452878730/
Dir1452879561/
Dir1452880342/
Dir1452881145/
Dir1452881482/
Dir1452881601/
Dir1452881722/
Dir1452881901/
Dir1452882084/
Dir1452882659/
Dir1452882676/
Dir1452882867/
Dir1452883044/
Dir1452883163/
Dir1452884784/
Dir1452886101/
Dir1452887962/
Dir1452888021/
Dir1452888562/
Dir1452888865/
Dir1452889161/
Dir1452891142/
Dir1452891204/
Dir1452892102/
Dir1452892881/
Dir1452893122/
Dir1452896001/
Dir1452896481/
Dir1452899663/
Dir1452902121/
Dir1452902181/
Dir1452904161/
Dir1452904209/
Dir1452905722/
Dir1452908001/
Dir1452915169/
Dir1452918441/
Dir1452918781/
Dir1452926962/
Dir1452927321/
Dir1452927621/
Dir1452936637/
Dir1452938546/
Dir1452947410/
Dir1452961101/
Dir1452969084/
Dir1452982461/
Dir1452983602/
Dir1452984260/
Dir1452996861/
Dir1453000021/
Dir1453001784/
Dir1453050211/
Dir1453051401/
Dir1453053321/
Dir1453055490/
Dir1453055601/
Dir1453056322/
Dir1453058381/
Dir1453061242/
Dir1453066220/
Dir1453068147/
Dir1453071021/
Dir1453077001/
Dir1453079061/
Dir1453086025/
Dir1453086981/
Dir1453087221/
Dir1453087893/
Dir1453092082/
Dir1453094840/
Dir1453098141/
Dir1453102042/
Dir1453102161/
Dir1453103724/
Dir1453105486/
Dir1453108161/
Dir1453108401/
Dir1453109842/
Dir1453115063/
Dir1453117162/
Dir1453119202/
Dir1453120205/
Dir1453123462/
Dir1453125083/
Dir1453133791/
Dir1453133910/
Dir1453137270/
Dir1453138050/
Dir1453138172/
Dir1453138533/
Dir1453138592/
Dir1453139611/
Dir1453140271/
Dir1453141865/
Dir1453141951/
Dir1453142188/
Dir1453147471/
Dir1453148675/
Dir1453148732/
Dir1453152614/
Dir1453153230/
Dir1453155331/
Dir1453157013/
Dir1453157196/
Dir1453157255/
Dir1453158396/
Dir1453158635/
Dir1453160257/
Dir1453167276/
Dir1453171656/
Dir1453179216/
Dir1453180834/
Dir1453182517/
Dir1453185222/
Dir1453185399/
Dir1453189657/
Dir1453190136/
Dir1453190378/
Dir1453191876/
Dir1453193376/
Dir1453193436/
Dir1453198427/
Dir1453199442/
Dir1453201536/
Dir1453205135/
Dir1453207956/
Dir1453212696/
Dir1453212756/
Dir1453213835/
Dir1453213896/
Dir1453214136/
Dir1453216372/
Dir1453216906/
Dir1453217815/
Dir1453219437/
Dir1453220711/
Dir1453221872/
Dir1453223792/
Dir1453225055/
Dir1453225892/
Dir1453226553/
Dir1453226672/
Dir1453228172/
Dir1453228535/
Dir1453230250/
Dir1453230813/
Dir1453230932/
Dir1453231294/
Dir1453232256/
Dir1453232676/
Dir1453235496/
Dir1453236577/
Dir1453237595/
Dir1453239576/
Dir1453240476/
Dir1453240536/
Dir1453240655/
Dir1453242152/
Dir1453242632/
Dir1453243237/
Dir1453243595/
Dir1453243895/
Dir1453244072/
Dir1453244195/
Dir1453244255/
Dir1453244315/
Dir1453244737/
Dir1453247297/
Dir1453248377/
Dir1453248438/
Dir1453248439/
Dir1453249757/
Dir1453250057/
Dir1453251742/
Dir1453251977/
Dir1453252277/
Dir1453256897/
Dir1453261349/
Dir1453261425/
Dir1453261428/
Dir1453261584/
Dir1453261586/
Dir1453261620/
Dir1453261921/
Dir1453262008/
Dir1453262011/
Dir1453262013/
Dir1453262157/
Dir1453262159/
Dir1453262162/
Dir1453262165/
Dir1453262179/
Dir1453262195/
Dir1453262245/
Dir1453262249/
Dir1453262251/
Dir1453262252/
Dir1453262365/
Dir1453262443/
Dir1453262444/
Dir1453262447/
Dir1453262463/
Dir1453262680/
Dir1453262865/
Dir1453262879/
Dir1453262936/
Dir1453263144/
Dir1453263425/
Dir1453263495/
Dir1453263497/
Dir1453263591/
Dir1453263695/
Dir1453263702/
Dir1453263705/
Dir1453263706/
Dir1453263771/
Dir1453263783/
Dir1453263832/
Dir1453264024/
Dir1453264047/
Dir1453264222/
Dir1453264486/
Dir1453264676/
Dir1453264683/
Dir1453264751/
Dir1453264784/
Dir1453264832/
Dir1453264867/
Dir1453279457/
Dir1453279877/
Dir1453280057/
Dir1453280345/
Dir1453280356/
Dir1453280357/
Dir1453280926/
Dir1453280927/
Dir1453281197/
Dir1453281437/
Dir1453281497/
Dir1453282098/
Dir1453282337/
Dir1453282937/
Dir1453283057/
Dir1453283298/
Dir1453284917/
Dir1453286240/
Dir1453286777/
Dir1453286897/
Dir1453287437/
Dir1453287681/
Dir1453289479/
Dir1453294577/
Dir1453295357/
Dir1453295717/
Dir1453296137/
Dir1453297397/
Dir1453297638/
Dir1453297699/
Dir1453298838/
Dir1453299737/
Dir1453300639/
Dir1453300817/
Dir1453300937/
Dir1453302087/
Dir1453302744/
Dir1453303165/
Dir1453304130/
Dir1453305565/
Dir1453310726/
Dir1453312466/
Dir1453312825/
Dir1453313016/
Dir1453313666/
Dir1453314446/
Dir1453314687/
Dir1453314749/
Dir1453314803/
Dir1453314923/
Dir1453315227/
Dir1453315282/
Dir1453315794/
Dir1453316760/
Dir1453317357/
Dir1453317717/
Dir1453322066/
Dir1453322906/
Dir1453323026/
Dir1453323265/
Dir1453323682/
Dir1453323683/
Dir1453325245/
Dir1453326505/
Dir1453335621/
Dir1453335681/
Dir1453335739/
Dir1453335740/
Dir1453335860/
Dir1453335861/
Dir1453335918/
Dir1453336101/
Dir1453336520/
Dir1453344200/
Dir1453344288/
Dir1453347708/
Dir1453352002/
Dir1453352120/
Dir1453352183/
Dir1453352241/
Dir1453353505/
Dir1453354641/
Dir1453357460/
Dir1453358780/
Dir1453358960/
Dir1453359082/
Dir1453362500/
Dir1453363220/
Dir1453363354/
Dir1453364550/
Dir1453364720/
Dir1453364780/
Dir1453364900/
Dir1453371020/
Dir1453374500/
Dir1453375520/
Dir1453375821/
Dir1453377205/
Dir1453378400/
Dir1453380083/
Dir1453381886/
Dir1453382000/
Dir1453382480/
Dir1453382660/
Dir1453382780/
Dir1453382842/
Dir1453382960/
Dir1453383860/
Dir1453384520/
Dir1453385720/
Dir1453388000/
Dir1453388122/
Dir1453390558/
Dir1453390782/
Dir1453391486/
Dir1453395202/
Dir1453395861/
Dir1453396101/
Dir1453396410/
Dir1453396525/
Dir1453399100/
Dir1453399944/
Dir1453400299/
Dir1453400423/
Dir1453403481/
Dir1453403683/
Dir1453405221/
Dir1453406902/
Dir1453408040/
Dir1453408160/
Dir1453412489/
Dir1453413330/
Dir1453413630/
Dir1453413689/
Dir1453414231/
Dir1453414769/
Dir1453414949/
Dir1453415550/
Dir1453416269/
Dir1453418430/
Dir1453418431/
Dir1453418491/
Dir1453418730/
Dir1453419690/
Dir1453420829/
Dir1453421789/
Dir1453422210/
Dir1453424190/
Dir1453424969/
Dir1453426028/
Dir1453426170/
Dir1453426467/
Dir1453426471/
Dir1453426475/
Dir1453426479/
Dir1453426483/
Dir1453426649/
Dir1453427249/
Dir1453427250/
Dir1453428870/
Dir1453430808/
Dir1453430885/
Dir1453431091/
Dir1453432769/
Dir1453432953/
Dir1453433669/
Dir1453435586/
Dir1453435710/
Dir1453444356/
Dir1453445069/
Dir1453445973/
Dir1453446569/
Dir1453447049/
Dir1453448429/
Dir1453448669/
Dir1453448968/
Dir1453449389/
Dir1453450169/
Dir1453453109/
Dir1453453888/
Dir1453454069/
Dir1453454551/
Dir1453454729/
Dir1453455206/
Dir1453457729/
Dir1453457907/
Dir1453459649/
Dir1453463849/
Dir1453465649/
Dir1453465839/
Dir1453465949/
Dir1453466549/
Dir1453467869/
Dir1453468169/
Dir1453468349/
Dir1453470389/
Dir1453472069/
Dir1453473449/
Dir1453474289/
Dir1453474352/
Dir1453477892/
Dir1453477949/
Dir1453478189/
Dir1453478325/
Dir1453478909/
Dir1453479208/
Dir1453480288/
Dir1453480530/
Dir1453481250/
Dir1453482929/
Dir1453483470/
Dir1453483833/
Dir1453484432/
Dir1453485870/
Dir1453485953/
Dir1453486827/
Dir1453487792/
Dir1453487967/
Dir1453488153/
Dir1453488267/
Dir1453488389/
Dir1453489650/
Dir1453490250/
Dir1453494390/
Dir1453494449/
Dir1453494569/
Dir1453494629/
Dir1453494869/
Dir1453496849/
Dir1453498229/
Dir1453498829/
Dir1453499249/
Dir1453499730/
Dir1453500509/
Dir1453502550/
Dir1453502609/
Dir1453505009/
Dir1453506269/
Dir1453507470/
Dir1453508909/
Dir1453511670/
Dir1453512509/
Dir1453513349/
Dir1453513409/
Dir1453513950/
Dir1453514787/
Dir1453518749/
Dir1453520247/
Dir1453527509/
Dir1453527749/
Dir1453532669/
Dir1453533211/
Dir1453534049/
Dir1453535849/
Dir1453552049/
Dir1453563989/
Dir1453564229/
Dir1453565969/
Dir1453568069/
Dir1453569269/
Dir1453578269/
Dir1453583249/
Dir1453589820/
Dir1453589962/
Dir1453589965/
Dir1453589976/
Dir1453589978/
Dir1453590006/
Dir1453590014/
Dir1453590018/
Dir1453590144/
Dir1453590260/
Dir1453590265/
Dir1453590266/
Dir1453590269/
Dir1453590271/
Dir1453590293/
Dir1453590501/
Dir1453590571/
Dir1453590640/
Dir1453590713/
Dir1453590764/
Dir1453590766/
Dir1453590849/
Dir1453590852/
Dir1453590856/
Dir1453590880/
Dir1453590998/
Dir1453590999/
Dir1453591010/
Dir1453591015/
Dir1453591016/
Dir1453591019/
Dir1453591022/
Dir1453591023/
Dir1453591148/
Dir1453591237/
Dir1453591340/
Dir1453591496/
Dir1453591562/
Dir1453591566/
Dir1453591724/
Dir1453591745/
Dir1453591759/
Dir1453591836/
Dir1453591838/
Dir1453591862/
Dir1453591893/
Dir1453591898/
Dir1453591989/
Dir1453592013/
Dir1453592093/
Dir1453592211/
Dir1453592215/
Dir1453592217/
Dir1453592243/
Dir1453592267/
Dir1453592270/
Dir1453592273/
Dir1453592274/
Dir1453592278/
Dir1453592280/
Dir1453592283/
Dir1453592286/
Dir1453592341/
Dir1453592342/
Dir1453592607/
Dir1453592637/
Dir1453592697/
Dir1453592753/
Dir1453592830/
Dir1453592867/
Dir1453592964/
Dir1453593000/
Dir1453593003/
Dir1453593005/
Dir1453593008/
Dir1453593010/
Dir1453593133/
Dir1453593228/
Dir1453593253/
Dir1453593256/
Dir1453593258/
Dir1453593263/
Dir1453593285/
Dir1453593291/
Dir1453593295/
Dir1453593320/
Dir1453593325/
Dir1453593327/
Dir1453593338/
Dir1453593417/
Dir1453593471/
Dir1453593493/
Dir1453593653/
Dir1453598407/
Dir1453600508/
Dir1453600687/
Dir1453602008/
Dir1453602487/
Dir1453603746/
Dir1453623787/
Dir1453629826/
Dir1453647608/
Dir1453670107/
Dir1453670287/
Dir1453672808/
Dir1453675627/
Dir1453677427/
Dir1453680068/
Dir1453682407/
Dir1453682707/
Dir1453683547/
Dir1453683826/
Dir1453685602/
Dir1453690267/
Dir1453691707/
Dir1453693747/
Dir1453693987/
Dir1453695247/
Dir1453695307/
Dir1453696569/
Dir1453697826/
Dir1453704427/
Dir1453705208/
Dir1453705687/
Dir1453711566/
Dir1453721105/
Dir1453722309/
Dir1453732464/
Dir1453733904/
Dir1453734931/
Dir1453734985/
Dir1453735105/
Dir1453737926/
Dir1453738105/
Dir1453739305/
Dir1453739907/
Dir1453743922/
Dir1453747585/
Dir1453748066/
Dir1453748707/
Dir1453748837/
Dir1453752266/
Dir1453752267/
Dir1453752805/
Dir1453753225/
Dir1453756466/
Dir1453757604/
Dir1453759164/
Dir1453759642/
Dir1453760065/
Dir1453762345/
Dir1453763667/
Dir1453763788/
Dir1453768709/
Dir1453769129/
Dir1453771709/
Dir1453772067/
Dir1453775725/
Dir1453779264/
Dir1453787549/
Dir1453790191/
Dir1453793968/
Dir1453794568/
Dir1453795108/
Dir1453795480/
Dir1453800750/
Dir1453802189/
Dir1453802550/
Dir1453802667/
Dir1453802968/
Dir1453803628/
Dir1453804348/
Dir1453804529/
Dir1453805428/
Dir1453806389/
Dir1453807589/
Dir1453807645/
Dir1453808789/
Dir1453809089/
Dir1453809333/
Dir1453811067/
Dir1453812326/
Dir1453812627/
Dir1453813109/
Dir1453813768/
Dir1453814247/
Dir1453815148/
Dir1453816526/
Dir1453818029/
Dir1453818989/
Dir1453821147/
Dir1453822090/
Dir1453824088/
Dir1453824290/
Dir1453826001/
Dir1453826671/
Dir1453827275/
Dir1453828648/
Dir1453829369/
Dir1453830685/
Dir1453830989/
Dir1453831355/
Dir1453831958/
Dir1453833154/
Dir1453833205/
Dir1453833569/
Dir1453834469/
Dir1453835370/
Dir1453835547/
Dir1453835969/
Dir1453838188/
Dir1453838487/
Dir1453838646/
Dir1453840290/
Dir1453841248/
Dir1453841365/
Dir1453841789/
Dir1453842158/
Dir1453842248/
Dir1453842808/
Dir1453843470/
Dir1453844488/
Dir1453844851/
Dir1453848621/
Dir1453850541/
Dir1453851321/
Dir1453857985/
Dir1453862002/
Dir1453862299/
Dir1453862960/
Dir1453865646/
Dir1453867500/
Dir1453867522/
Dir1453873289/
Dir1453873370/
Dir1453873829/
Dir1453874249/
Dir1453874369/
Dir1453874972/
Dir1453875389/
Dir1453875485/
Dir1453875626/
Dir1453875630/
Dir1453875631/
Dir1453875633/
Dir1453875634/
Dir1453875637/
Dir1453875642/
Dir1453875702/
Dir1453875879/
Dir1453875918/
Dir1453876207/
Dir1453876212/
Dir1453876213/
Dir1453876291/
Dir1453876490/
Dir1453876503/
Dir1453876720/
Dir1453876815/
Dir1453876818/
Dir1453876925/
Dir1453876928/
Dir1453876929/
Dir1453876934/
Dir1453877198/
Dir1453877283/
Dir1453877392/
Dir1453877851/
Dir1453877855/
Dir1453877856/
Dir1453877864/
Dir1453878299/
Dir1453878509/
Dir1453878552/
Dir1453879769/
Dir1453881929/
Dir1453883009/
Dir1453883549/
Dir1453884209/
Dir1453889129/
Dir1453889261/
Dir1453889549/
Dir1453890029/
Dir1453890328/
Dir1453890449/
Dir1453890631/
Dir1453890749/
Dir1453890808/
Dir1453890929/
Dir1453890990/
Dir1453891051/
Dir1453891169/
Dir1453891409/
Dir1453892069/
Dir1453892370/
Dir1453892371/
Dir1453892550/
Dir1453893089/
Dir1453897409/
Dir1453898189/
Dir1453898489/
Dir1453899509/
Dir1453905029/
Dir1453905660/
Dir1453906740/
Dir1453907640/
Dir1453907880/
Dir1453908702/
Dir1453908703/
Dir1453909587/
Dir1453910651/
Dir1453910707/
Dir1453911660/
Dir1453915020/
Dir1453915218/
Dir1453915861/
Dir1453916217/
Dir1453916476/
Dir1453916519/
Dir1453916820/
Dir1453917063/
Dir1453917960/
Dir1453919340/
Dir1453922820/
Dir1453922880/
Dir1453926480/
Dir1453927560/
Dir1453927620/
Dir1453927860/
Dir1453929360/
Dir1453929600/
Dir1453930320/
Dir1453933199/
Dir1453933560/
Dir1453934699/
Dir1453935240/
Dir1453935420/
Dir1453935599/
Dir1453936199/
Dir1453936320/
Dir1453937519/
Dir1453938000/
Dir1453939920/
Dir1453942437/
Dir1453944239/
Dir1453944360/
Dir1453945320/
Dir1453945618/
Dir1453947001/
Dir1453948620/
Dir1453949820/
Dir1453951200/
Dir1453951970/
Dir1453955439/
Dir1453955879/
Dir1453959540/
Dir1453960740/
Dir1453967221/
Dir1453967699/
Dir1453968480/
Dir1453968960/
Dir1453969440/
Dir1453969859/
Dir1453969980/
Dir1453971238/
Dir1453973457/
Dir1453973520/
Dir1453976937/
Dir1453977599/
Dir1453977780/
Dir1453978560/
Dir1453980540/
Dir1453988520/
Dir1453989480/
Dir1453994640/
Dir1453994940/
Dir1453995280/
Dir1453995659/
Dir1453995840/
Dir1453997100/
Dir1453999440/
Dir1454001806/
Dir1454003426/
Dir1454003667/
Dir1454004086/
Dir1454006426/
Dir1454011230/
Dir1454011706/
Dir1454012366/
Dir1454014706/
Dir1454014885/
Dir1454015908/
Dir1454018065/
Dir1454021005/
Dir1454021486/
Dir1454021545/
Dir1454022505/
Dir1454022984/
Dir1454023825/
Dir1454024125/
Dir1454027005/
Dir1454029285/
Dir1454031565/
Dir1454032287/
Dir1454032465/
Dir1454033163/
Dir1454033164/
Dir1454036365/
Dir1454037326/
Dir1454037874/
Dir1454039665/
Dir1454042965/
Dir1454043025/
Dir1454043445/
Dir1454044347/
Dir1454049924/
Dir1454053705/
Dir1454054426/
Dir1454056166/
Dir1454057908/
Dir1454059106/
Dir1454064565/
Dir1454064805/
Dir1454064926/
Dir1454065047/
Dir1454065445/
Dir1454066185/
Dir1454071944/
Dir1454072365/
Dir1454075605/
Dir1454077945/
Dir1454078787/
Dir1454081129/
Dir1454081725/
Dir1454082025/
Dir1454086707/
Dir1454091386/
Dir1454091756/
Dir1454092310/
Dir1454100274/
Dir1454100334/
Dir1454100373/
Dir1454100389/
Dir1454100393/
Dir1454100400/
Dir1454100428/
Dir1454100444/
Dir1454100448/
Dir1454100526/
Dir1454100556/
Dir1454100616/
Dir1454100630/
Dir1454100635/
Dir1454100637/
Dir1454100640/
Dir1454100665/
Dir1454100675/
Dir1454100733/
Dir1454100739/
Dir1454100829/
Dir1454100849/
Dir1454100855/
Dir1454100870/
Dir1454100871/
Dir1454100911/
Dir1454100964/
Dir1454100966/
Dir1454100967/
Dir1454100970/
Dir1454100972/
Dir1454100981/
Dir1454101016/
Dir1454101091/
Dir1454101125/
Dir1454101234/
Dir1454101467/
Dir1454101527/
Dir1454101641/
Dir1454101715/
Dir1454101833/
Dir1454101854/
Dir1454101986/
Dir1454102162/
Dir1454102165/
Dir1454102504/
Dir1454102571/
Dir1454102581/
Dir1454102685/
Dir1454102687/
Dir1454102765/
Dir1454103805/
Dir1454104105/
Dir1454104705/
Dir1454105246/
Dir1454106085/
Dir1454106325/
Dir1454106626/
Dir1454106985/
Dir1454107886/
Dir1454108305/
Dir1454108769/
Dir1454108937/
Dir1454109089/
Dir1454109505/
Dir1454109587/
Dir1454109795/
Dir1454110105/
Dir1454110108/
Dir1454110112/
Dir1454110115/
Dir1454110118/
Dir1454110123/
Dir1454110464/
Dir1454110656/
Dir1454110667/
Dir1454110672/
Dir1454110677/
Dir1454110885/
Dir1454111159/
Dir1454111171/
Dir1454113849/
Dir1454115385/
Dir1454118806/
Dir1454125765/
Dir1454126185/
Dir1454126366/
Dir1454142085/
Dir1454146232/
Dir1454171616/
Dir1454173646/
Dir1454175265/
Dir1454175866/
Dir1454177905/
Dir1454178505/
Dir1454185346/
Dir1454185349/
Dir1454185403/
Dir1454185413/
Dir1454185475/
Dir1454185478/
Dir1454185524/
Dir1454185591/
Dir1454185593/
Dir1454185596/
Dir1454185604/
Dir1454185609/
Dir1454185693/
Dir1454185702/
Dir1454185704/
Dir1454185757/
Dir1454185760/
Dir1454185794/
Dir1454185797/
Dir1454185800/
Dir1454185804/
Dir1454185805/
Dir1454185807/
Dir1454185810/
Dir1454185814/
Dir1454185943/
Dir1454185957/
Dir1454186058/
Dir1454186071/
Dir1454186109/
Dir1454186182/
Dir1454186184/
Dir1454186187/
Dir1454186189/
Dir1454186257/
Dir1454186277/
Dir1454186284/
Dir1454186285/
Dir1454186317/
Dir1454186444/
Dir1454186447/
Dir1454186593/
Dir1454186670/
Dir1454186758/
Dir1454186763/
Dir1454186766/
Dir1454186768/
Dir1454186787/
Dir1454186823/
Dir1454186827/
Dir1454186829/
Dir1454186930/
Dir1454186963/
Dir1454186969/
Dir1454186986/
Dir1454186991/
Dir1454187038/
Dir1454187067/
Dir1454187113/
Dir1454187123/
Dir1454187198/
Dir1454187259/
Dir1454187312/
Dir1454187432/
Dir1454187454/
Dir1454187524/
Dir1454187576/
Dir1454187589/
Dir1454187626/
Dir1454187629/
Dir1454187636/
Dir1454187706/
Dir1454187740/
Dir1454187741/
Dir1454187742/
Dir1454187745/
Dir1454187748/
Dir1454187837/
Dir1454187839/
Dir1454187843/
Dir1454187845/
Dir1454187846/
Dir1454187855/
Dir1454187858/
Dir1454187860/
Dir1454187862/
Dir1454187863/
Dir1454187961/
Dir1454202745/
Dir1454228906/
Dir1454230165/
Dir1454245286/
Dir1454252065/
Dir1454253206/
Dir1454263886/
Dir1454269586/
Dir1454270366/
Dir1454281586/
Dir1454281765/
Dir1454285485/
Dir1454286685/
Dir1454289625/
Dir1454290045/
Dir1454291968/
Dir1454295026/
Dir1454295446/
Dir1454297305/
Dir1454301324/
Dir1454309607/
Dir1454313827/
Dir1454314225/
Dir1454314465/
Dir1454314945/
Dir1454315065/
Dir1454315245/
Dir1454316025/
Dir1454316085/
Dir1454317228/
Dir1454317765/
Dir1454317886/
Dir1454329526/
Dir1454337028/
Dir1454337204/
Dir1454339484/
Dir1454339906/
Dir1454339964/
Dir1454340805/
Dir1454342366/
Dir1454343629/
Dir1454345666/
Dir1454345726/
Dir1454345786/
Dir1454346685/
Dir1454348785/
Dir1454351906/
Dir1454354186/
Dir1454356165/
Dir1454358627/
Dir1454360253/
Dir1454360431/
Dir1454361751/
Dir1454362775/
Dir1454363370/
Dir1454364030/
Dir1454364272/
Dir1454364396/
Dir1454366119/
Dir1454366899/
Dir1454367199/
Dir1454367319/
Dir1454367975/
Dir1454369838/
Dir1454371579/
Dir1454371580/
Dir1454371698/
Dir1454371879/
Dir1454372479/
Dir1454372719/
Dir1454373015/
Dir1454374095/
Dir1454374817/
Dir1454380574/
Dir1454380587/
Dir1454380588/
Dir1454380590/
Dir1454380591/
Dir1454380602/
Dir1454380606/
Dir1454380610/
Dir1454380630/
Dir1454380641/
Dir1454380642/
Dir1454380654/
Dir1454380655/
Dir1454380658/
Dir1454380659/
Dir1454380666/
Dir1454380668/
Dir1454380674/
Dir1454380680/
Dir1454380681/
Dir1454380685/
Dir1454380686/
Dir1454380693/
Dir1454380694/
Dir1454380700/
Dir1454380701/
Dir1454380702/
Dir1454380713/
Dir1454380715/
Dir1454380716/
Dir1454380725/
Dir1454380726/
Dir1454380727/
Dir1454380728/
Dir1454380729/
Dir1454380730/
Dir1454380745/
Dir1454380746/
Dir1454380748/
Dir1454380749/
Dir1454380755/
Dir1454380757/
Dir1454380761/
Dir1454380769/
Dir1454380782/
Dir1454380785/
Dir1454380789/
Dir1454380798/
Dir1454380818/
Dir1454380819/
Dir1454380820/
Dir1454380821/
Dir1454380822/
Dir1454380823/
Dir1454380824/
Dir1454380831/
Dir1454380834/
Dir1454380858/
Dir1454380861/
Dir1454380864/
Dir1454380867/
Dir1454380870/
Dir1454380876/
Dir1454380884/
Dir1454380885/
Dir1454380886/
Dir1454380896/
Dir1454380899/
Dir1454380930/
Dir1454380938/
Dir1454380939/
Dir1454380945/
Dir1454380951/
Dir1454380957/
Dir1454380971/
Dir1454380981/
Dir1454380982/
Dir1454381007/
Dir1454381030/
Dir1454381032/
Dir1454381045/
Dir1454381064/
Dir1454382020/
Dir1454382379/
Dir1454385259/
Dir1454388319/
Dir1454390958/
Dir1454392699/
Dir1454400145/
Dir1454400435/
Dir1454403016/
Dir1454403199/
Dir1454404875/
Dir1454405659/
Dir1454406379/
Dir1454406859/
Dir1454408055/
Dir1454409743/
Dir1454410278/
Dir1454410460/
Dir1454410461/
Dir1454411360/
Dir1454411555/
Dir1454418859/
Dir1454418979/
Dir1454419519/
Dir1454423359/
Dir1454426773/
Dir1454427435/
Dir1454427792/
Dir1454431933/
Dir1454436290/
Dir1454436291/
Dir1454436331/
Dir1454436611/
Dir1454437149/
Dir1454437270/
Dir1454440392/
Dir1454440512/
Dir1454443692/
Dir1454445434/
Dir1454447050/
Dir1454447712/
Dir1454449514/
Dir1454450113/
Dir1454450752/
Dir1454451190/
Dir1454451852/
Dir1454453383/
Dir1454453564/
Dir1454454103/
Dir1454454883/
Dir1454456684/
Dir1454457224/
Dir1454458543/
Dir1454460223/
Dir1454460582/
Dir1454461723/
Dir1454464423/
Dir1454467286/
Dir1454467290/
Dir1454467357/
Dir1454467375/
Dir1454467381/
Dir1454467430/
Dir1454467431/
Dir1454467454/
Dir1454467455/
Dir1454467456/
Dir1454467495/
Dir1454467496/
Dir1454467502/
Dir1454467506/
Dir1454467518/
Dir1454467536/
Dir1454467540/
Dir1454467551/
Dir1454467559/
Dir1454467563/
Dir1454467568/
Dir1454467582/
Dir1454467584/
Dir1454467599/
Dir1454467654/
Dir1454467655/
Dir1454467743/
Dir1454467750/
Dir1454467757/
Dir1454467766/
Dir1454467768/
Dir1454467773/
Dir1454467840/
Dir1454468324/
Dir1454468825/
Dir1454468834/
Dir1454468890/
Dir1454468912/
Dir1454468921/
Dir1454468930/
Dir1454468944/
Dir1454468963/
Dir1454468964/
Dir1454468977/
Dir1454468978/
Dir1454468980/
Dir1454468997/
Dir1454468998/
Dir1454469011/
Dir1454469013/
Dir1454469021/
Dir1454469025/
Dir1454469031/
Dir1454469036/
Dir1454469041/
Dir1454469053/
Dir1454469054/
Dir1454469060/
Dir1454469064/
Dir1454469068/
Dir1454469075/
Dir1454469090/
Dir1454469145/
Dir1454469147/
Dir1454469149/
Dir1454469403/
Dir1454470003/
Dir1454474924/
Dir1454481099/
Dir1454491852/
Dir1454493103/
Dir1454493583/
Dir1454496403/
Dir1454496464/
Dir1454496583/
Dir1454498682/
Dir1454498864/
Dir1454499283/
Dir1454499763/
Dir1454499889/
Dir1454499890/
Dir1454500003/
Dir1454500124/
Dir1454500243/
Dir1454507684/
Dir1454508367/
Dir1454509067/
Dir1454509183/
Dir1454509963/
Dir1454510864/
Dir1454513141/
Dir1454513338/
Dir1454513731/
Dir1454514463/
Dir1454516547/
Dir1454517154/
Dir1454517628/
Dir1454521527/
Dir1454522488/
Dir1454522778/
Dir1454524245/
Dir1454525128/
Dir1454526330/
Dir1454526510/
Dir1454526566/
Dir1454526868/
Dir1454526985/
Dir1454527533/
Dir1454530646/
Dir1454531309/
Dir1454531667/
Dir1454531907/
Dir1454532028/
Dir1454532384/
Dir1454535050/
Dir1454535066/
Dir1454535088/
Dir1454535327/
Dir1454536288/
Dir1454536839/
Dir1454536842/
Dir1454536853/
Dir1454537907/
Dir1454539405/
Dir1454539467/
Dir1454541388/
Dir1454543487/
Dir1454544687/
Dir1454544867/
Dir1454545407/
Dir1454545764/
Dir1454545832/
Dir1454546124/
Dir1454546427/
Dir1454546667/
Dir1454547627/
Dir1454548647/
Dir1454549906/
Dir1454551947/
Dir1454553086/
Dir1454556767/
Dir1454556986/
Dir1454557889/
Dir1454558007/
Dir1454559387/
Dir1454559567/
Dir1454560452/
Dir1454564788/
Dir1454565868/
Dir1454566470/
Dir1454567464/
Dir1454570667/
Dir1454570788/
Dir1454571208/
Dir1454572228/
Dir1454573307/
Dir1454573727/
Dir1454573847/
Dir1454575228/
Dir1454575767/
Dir1454578229/
Dir1454580630/
Dir1454580744/
Dir1454583993/
Dir1454585784/
Dir1454587709/
Dir1454589063/
Dir1454594429/
Dir1454595748/
Dir1454595868/
Dir1454596708/
Dir1454598273/
Dir1454599168/
Dir1454599768/
Dir1454600184/
Dir1454600484/
Dir1454601627/
Dir1454606437/
Dir1454606788/
Dir1454609620/
Dir1454609621/
Dir1454609622/
Dir1454609625/
Dir1454609626/
Dir1454609627/
Dir1454609628/
Dir1454609629/
Dir1454609630/
Dir1454609631/
Dir1454609632/
Dir1454609633/
Dir1454609634/
Dir1454609635/
Dir1454609636/
Dir1454609637/
Dir1454609639/
Dir1454609640/
Dir1454609641/
Dir1454609643/
Dir1454609644/
Dir1454609646/
Dir1454609647/
Dir1454609648/
Dir1454609650/
Dir1454609651/
Dir1454609652/
Dir1454609654/
Dir1454609655/
Dir1454609656/
Dir1454609657/
Dir1454609658/
Dir1454609659/
Dir1454609660/
Dir1454609661/
Dir1454609662/
Dir1454609663/
Dir1454609665/
Dir1454609666/
Dir1454609667/
Dir1454609669/
Dir1454609670/
Dir1454609671/
Dir1454609673/
Dir1454609674/
Dir1454609676/
Dir1454609677/
Dir1454609678/
Dir1454609680/
Dir1454609711/
Dir1454609712/
Dir1454609713/
Dir1454609715/
Dir1454609716/
Dir1454609718/
Dir1454609719/
Dir1454609720/
Dir1454609721/
Dir1454609723/
Dir1454609724/
Dir1454609725/
Dir1454609729/
Dir1454609730/
Dir1454609731/
Dir1454609734/
Dir1454609735/
Dir1454609737/
Dir1454609738/
Dir1454609739/
Dir1454609740/
Dir1454609741/
Dir1454609742/
Dir1454609743/
Dir1454609744/
Dir1454609746/
Dir1454609747/
Dir1454609748/
Dir1454609750/
Dir1454609751/
Dir1454609752/
Dir1454609754/
Dir1454609755/
Dir1454609756/
Dir1454609757/
Dir1454609759/
Dir1454609761/
Dir1454609762/
Dir1454609814/
Dir1454609815/
Dir1454609817/
Dir1454609818/
Dir1454609819/
Dir1454610199/
Dir1454610329/
Dir1454610380/
Dir1454610641/
Dir1454610718/
Dir1454610780/
Dir1454610829/
Dir1454611262/
Dir1454611297/
Dir1454611314/
Dir1454611398/
Dir1454611401/
Dir1454611605/
Dir1454611781/
Dir1454611787/
Dir1454611792/
Dir1454611835/
Dir1454612048/
Dir1454612050/
Dir1454612051/
Dir1454612052/
Dir1454612057/
Dir1454612062/
Dir1454612065/
Dir1454612109/
Dir1454615008/
Dir1454621361/
Dir1454621980/
Dir1454621985/
Dir1454622605/
Dir1454622697/
Dir1454635374/
Dir1454641390/
Dir1454641932/
Dir1454642109/
Dir1454642890/
Dir1454643729/
Dir1454643969/
Dir1454644332/
Dir1454644509/
Dir1454647452/
Dir1454649429/
Dir1454652530/
Dir1454653871/
Dir1454653872/
Dir1454653890/
Dir1454656467/
Dir1454658489/
Dir1454662210/
Dir1454664650/
Dir1454667610/
Dir1454668030/
Dir1454668150/
Dir1454668390/
Dir1454668450/
Dir1454669410/
Dir1454670070/
Dir1454671450/
Dir1454672710/
Dir1454675437/
Dir1454676851/
Dir1454677150/
Dir1454677252/
Dir1454677255/
Dir1454677692/
Dir1454678350/
Dir1454679970/
Dir1454681109/
Dir1454682790/
Dir1454683930/
Dir1454685019/
Dir1454686151/
Dir1454686352/
Dir1454686355/
Dir1454686929/
Dir1454687469/
Dir1454687532/
Dir1454689154/
Dir1454689453/
Dir1454695929/
Dir1454696049/
Dir1454696050/
Dir1454697050/
Dir1454697129/
Dir1454697794/
Dir1454701494/
Dir1454704013/
Dir1454707819/
Dir1454707914/
Dir1454708033/
Dir1454708094/
Dir1454708274/
Dir1454708574/
Dir1454708935/
Dir1454709054/
Dir1454710133/
Dir1454710254/
Dir1454712953/
Dir1454713793/
Dir1454714274/
Dir1454715578/
Dir1454715637/
Dir1454716834/
Dir1454719358/
Dir1454719418/
Dir1454720317/
Dir1454720680/
Dir1454724038/
Dir1454728358/
Dir1454729599/
Dir1454729681/
Dir1454730220/
Dir1454732917/
Dir1454733227/
Dir1454734717/
Dir1454736399/
Dir1454740240/
Dir1454740837/
Dir1454741018/
Dir1454742638/
Dir1454751001/
Dir1454767958/
Dir1454780378/
Dir1454781219/
Dir1454787660/
Dir1454794010/
Dir1454794353/
Dir1454795940/
Dir1454805001/
Dir1454812980/
Dir1454814961/
Dir1454818140/
Dir1454820120/
Dir1454821691/
Dir1454827861/
Dir1454840580/
Dir1454841061/
Dir1454842320/
Dir1454847360/
Dir1454856060/
Dir1454863503/
Dir1454865001/
Dir1454872080/
Dir1454872920/
Dir1454874420/
Dir1454874720/
Dir1454890140/
Dir1454892240/
Dir1454893980/
Dir1454894580/
Dir1454897821/
Dir1454899980/
Dir1454902259/
Dir1454910240/
Dir1454911140/
Dir1454912880/
Dir1454913421/
Dir1454921280/
Dir1454921460/
Dir1454925600/
Dir1454926920/
Dir1454929080/
Dir1454929438/
Dir1454933176/
Dir1454933939/
Dir1454934541/
Dir1454937060/
Dir1454937424/
Dir1454937722/
Dir1454941081/
Dir1454941141/
Dir1454941501/
Dir1454941621/
Dir1454942702/
Dir1454943182/
Dir1454943244/
Dir1454944634/
Dir1454944811/
Dir1454949252/
Dir1454949360/
Dir1454949963/
Dir1454950582/
Dir1454952604/
Dir1454953212/
Dir1454954044/
Dir1454957641/
Dir1454959286/
Dir1454959527/
Dir1454961395/
Dir1454962167/
Dir1454974284/
Dir1454975184/
Dir1454975364/
Dir1454976564/
Dir1454977044/
Dir1454978724/
Dir1454980047/
Dir1454981064/
Dir1454981964/
Dir1454984665/
Dir1454987135/
Dir1454988176/
Dir1454994476/
Dir1455000657/
Dir1455002698/
Dir1455003536/
Dir1455004136/
Dir1455006776/
Dir1455011516/
Dir1455011577/
Dir1455014816/
Dir1455015356/
Dir1455016136/
Dir1455019857/
Dir1455022136/
Dir1455023222/
Dir1455025196/
Dir1455025316/
Dir1455026696/
Dir1455028676/
Dir1455028794/
Dir1455029276/
Dir1455029396/
Dir1455031435/
Dir1455032217/
Dir1455034739/
Dir1455036298/
Dir1455037640/
Dir1455056357/
Dir1455056717/
Dir1455056778/
Dir1455056895/
Dir1455056958/
Dir1455057158/
Dir1455057639/
Dir1455057698/
Dir1455057817/
Dir1455057878/
Dir1455058356/
Dir1455058597/
Dir1455058658/
Dir1455059030/
Dir1455059617/
Dir1455059858/
Dir1455060097/
Dir1455060217/
Dir1455060755/
Dir1455060831/
Dir1455061058/
Dir1455062805/
Dir1455063158/
Dir1455065678/
Dir1455065975/
Dir1455066636/
Dir1455067058/
Dir1455067355/
Dir1455067657/
Dir1455068314/
Dir1455072278/
Dir1455072338/
Dir1455072459/
Dir1455072577/
Dir1455073183/
Dir1455075261/
Dir1455076582/
Dir1455077182/
Dir1455080902/
Dir1455081802/
Dir1455085225/
Dir1455088642/
Dir1455088763/
Dir1455088882/
Dir1455089063/
Dir1455089725/
Dir1455090982/
Dir1455091942/
Dir1455095302/
Dir1455095539/
Dir1455097400/
Dir1455097642/
Dir1455098793/
Dir1455099682/
Dir1455100583/
Dir1455100823/
Dir1455103343/
Dir1455105502/
Dir1455105922/
Dir1455106462/
Dir1455106882/
Dir1455107663/
Dir1455108742/
Dir1455110302/
Dir1455110543/
Dir1455111023/
Dir1455114143/
Dir1455114520/
Dir1455115043/
Dir1455115102/
Dir1455116063/
Dir1455116299/
Dir1455117530/
Dir1455117531/
Dir1455117923/
Dir1455118549/
Dir1455119859/
Dir1455119978/
Dir1455120098/
Dir1455121978/
Dir1455121979/
Dir1455122499/
Dir1455123098/
Dir1455123640/
Dir1455124961/
Dir1455125082/
Dir1455125263/
Dir1455125801/
Dir1455126580/
Dir1455127358/
Dir1455128918/
Dir1455128979/
Dir1455129278/
Dir1455130478/
Dir1455130538/
Dir1455130659/
Dir1455132162/
Dir1455134258/
Dir1455137498/
Dir1455137679/
Dir1455137918/
Dir1455139778/
Dir1455139958/
Dir1455140498/
Dir1455143978/
Dir1455143979/
Dir1455144038/
Dir1455144458/
Dir1455144818/
Dir1455144878/
Dir1455145778/
Dir1455146672/
Dir1455148113/
Dir1455156874/
Dir1455157053/
Dir1455163892/
Dir1455165251/
Dir1455165335/
Dir1455172652/
Dir1455178712/
Dir1455179132/
Dir1455179192/
Dir1455179617/
Dir1455180752/
Dir1455180992/
Dir1455185852/
Dir1455186871/
Dir1455188253/
Dir1455188644/
Dir1455189632/
Dir1455191612/
Dir1455191672/
Dir1455197132/
Dir1455198392/
Dir1455200612/
Dir1455203262/
Dir1455204453/
Dir1455204879/
Dir1455205712/
Dir1455206013/
Dir1455206432/
Dir1455206498/
Dir1455206880/
Dir1455210815/
Dir1455212553/
Dir1455212851/
Dir1455213095/
Dir1455213214/
Dir1455214794/
Dir1455215314/
Dir1455216152/
Dir1455216213/
Dir1455217233/
Dir1455217832/
Dir1455218193/
Dir1455218613/
Dir1455219214/
Dir1455219692/
Dir1455219815/
Dir1455219999/
Dir1455220295/
Dir1455221559/
Dir1455222817/
Dir1455222932/
Dir1455224733/
Dir1455225325/
Dir1455225865/
Dir1455226230/
Dir1455226705/
Dir1455227006/
Dir1455227428/
Dir1455228675/
Dir1455228676/
Dir1455228677/
Dir1455229049/
Dir1455229169/
Dir1455229227/
Dir1455229406/
Dir1455230126/
Dir1455230308/
Dir1455230367/
Dir1455230967/
Dir1455231089/
Dir1455231090/
Dir1455233608/
Dir1455234209/
Dir1455236609/
Dir1455237329/
Dir1455237869/
Dir1455238349/
Dir1455239665/
Dir1455250768/
Dir1455251309/
Dir1455252493/
Dir1455252746/
Dir1455252988/
Dir1455255029/
Dir1455255688/
Dir1455259333/
Dir1455262275/
Dir1455262814/
Dir1455262935/
Dir1455263415/
Dir1455263715/
Dir1455264315/
Dir1455265215/
Dir1455265458/
Dir1455265573/
Dir1455270555/
Dir1455270734/
Dir1455271202/
Dir1455271203/
Dir1455275835/
Dir1455279495/
Dir1455281236/
Dir1455283811/
Dir1455283875/
Dir1455284294/
Dir1455284775/
Dir1455285554/
Dir1455286881/
Dir1455287774/
Dir1455291613/
Dir1455293423/
Dir1455296846/
Dir1455297685/
Dir1455298403/
Dir1455317425/
Dir1455317665/
Dir1455317725/
Dir1455317965/
Dir1455320965/
Dir1455322945/
Dir1455323425/
Dir1455327745/
Dir1455330625/
Dir1455334475/
Dir1455342865/
Dir1455346705/
Dir1455365605/
Dir1455370465/
Dir1455375445/
Dir1455379765/
Dir1455385285/
Dir1455395896/
Dir1455400036/
Dir1455413357/
Dir1455420377/
Dir1455456681/
Dir1455460697/
Dir1455482963/
Dir1455489623/
Dir1455496523/
Dir1455500903/
Dir1455520283/
Dir1455523041/
Dir1455525863/
Dir1455527303/
Dir1455531743/
Dir1455533003/
Dir1455535883/
Dir1455537863/
Dir1455539422/
Dir1455542671/
Dir1455545361/
Dir1455546145/
Dir1455546924/
Dir1455550040/
Dir1455551060/
Dir1455556648/
Dir1455560004/
Dir1455561572/
Dir1455562880/
Dir1455564562/
Dir1455564984/
Dir1455582050/
Dir1455595850/
Dir1455603290/
Dir1455603409/
Dir1455603529/
Dir1455603649/
Dir1455606528/
Dir1455608089/
Dir1455609538/
Dir1455609854/
Dir1455611029/
Dir1455613431/
Dir1455616129/
Dir1455616369/
Dir1455619670/
Dir1455621650/
Dir1455623090/
Dir1455623871/
Dir1455629449/
Dir1455633649/
Dir1455634069/
Dir1455637489/
Dir1455637609/
Dir1455637670/
Dir1455637851/
Dir1455638150/
Dir1455638930/
Dir1455639469/
Dir1455640009/
Dir1455640970/
Dir1455642532/
Dir1455643490/
Dir1455645289/
Dir1455646549/
Dir1455646853/
Dir1455649733/
Dir1455650330/
Dir1455651410/
Dir1455651774/
Dir1455652790/
Dir1455653031/
Dir1455653810/
Dir1455654469/
Dir1455655189/
Dir1455656209/
Dir1455658129/
Dir1455658611/
Dir1455658669/
Dir1455659210/
Dir1455659330/
Dir1455659809/
Dir1455661249/
Dir1455661969/
Dir1455663110/
Dir1455663529/
Dir1455664433/
Dir1455669649/
Dir1455669710/
Dir1455670131/
Dir1455671040/
Dir1455674150/
Dir1455676443/
Dir1455677870/
Dir1455678589/
Dir1455678832/
Dir1455681532/
Dir1455682717/
Dir1455683929/
Dir1455684529/
Dir1455685909/
Dir1455686149/
Dir1455689930/
Dir1455697609/
Dir1455697789/
Dir1455698149/
Dir1455699470/
Dir1455701030/
Dir1455701390/
Dir1455702710/
Dir1455703262/
Dir1455704990/
Dir1455705170/
Dir1455706131/
Dir1455707693/
Dir1455707810/
Dir1455708471/
Dir1455710750/
Dir1455716270/
Dir1455717530/
Dir1455717531/
Dir1455721009/
Dir1455722330/
Dir1455723279/
Dir1455723348/
Dir1455723710/
Dir1455723775/
Dir1455724378/
Dir1455729702/
Dir1455730370/
Dir1455731515/
Dir1455731870/
Dir1455732771/
Dir1455732949/
Dir1455733190/
Dir1455733250/
Dir1455733731/
Dir1455736527/
Dir1455737129/
Dir1455737247/
Dir1455738506/
Dir1455739529/
Dir1455739647/
Dir1455741451/
Dir1455743128/
Dir1455743427/
Dir1455744026/
Dir1455745047/
Dir1455745348/
Dir1455746648/
Dir1455749305/
Dir1455753567/
Dir1455755006/
Dir1455755727/
Dir1455756626/
Dir1455758368/
Dir1455759206/
Dir1455759506/
Dir1455764127/
Dir1455764750/
Dir1455765567/
Dir1455767066/
Dir1455767966/
Dir1455769526/
Dir1455772466/
Dir1455772706/
Dir1455776366/
Dir1455778526/
Dir1455780928/
Dir1455782187/
Dir1455783746/
Dir1455784466/
Dir1455784586/
Dir1455788065/
Dir1455788192/
Dir1455788426/
Dir1455788487/
Dir1455788726/
Dir1455788966/
Dir1455789146/
Dir1455791847/
Dir1455791966/
Dir1455792273/
Dir1455792568/
Dir1455794966/
Dir1455795086/
Dir1455799293/
Dir1455801686/
Dir1455803726/
Dir1455810147/
Dir1455810386/
Dir1455810506/
Dir1455810747/
Dir1455810806/
Dir1455811052/
Dir1455811649/
Dir1455812546/
Dir1455812785/
Dir1455813328/
Dir1455813506/
Dir1455813986/
Dir1455815449/
Dir1455815613/
Dir1455817646/
Dir1455818254/
Dir1455821666/
Dir1455821907/
Dir1455822749/
Dir1455823589/
Dir1455824246/
Dir1455825324/
Dir1455825394/
Dir1455826169/
Dir1455826646/
Dir1455826767/
Dir1455828806/
Dir1455831387/
Dir1455831986/
Dir1455832887/
Dir1455833127/
Dir1455833487/
Dir1455835768/
Dir1455836304/
Dir1455836642/
Dir1455837747/
Dir1455838586/
Dir1455838707/
Dir1455843485/
Dir1455844385/
Dir1455844805/
Dir1455845284/
Dir1455845703/
Dir1455847085/
Dir1455847208/
Dir1455860880/
Dir1455862137/
Dir1455863759/
Dir1455866460/
Dir1455867540/
Dir1455868199/
Dir1455869160/
Dir1455869639/
Dir1455870657/
Dir1455871200/
Dir1455871979/
Dir1455873000/
Dir1455875580/
Dir1455878460/
Dir1455878519/
Dir1455878640/
Dir1455878940/
Dir1455879059/
Dir1455880140/
Dir1455881939/
Dir1455882779/
Dir1455888664/
Dir1455889860/
Dir1455891299/
Dir1455892019/
Dir1455896716/
Dir1455898946/
Dir1455899366/
Dir1455899858/
Dir1455900685/
Dir1455905126/
Dir1455905546/
Dir1455905788/
Dir1455906867/
Dir1455907345/
Dir1455912363/
Dir1455912364/
Dir1455912366/
Dir1455912370/
Dir1455912423/
Dir1455912626/
Dir1455914246/
Dir1455914725/
Dir1455915085/
Dir1455915145/
Dir1455916819/
Dir1455916882/
Dir1455917181/
Dir1455917722/
Dir1455918201/
Dir1455922401/
Dir1455922945/
Dir1455923361/
Dir1455923479/
Dir1455934821/
Dir1455934881/
Dir1455936441/
Dir1455937377/
Dir1455937714/
Dir1455938061/
Dir1455945022/
Dir1455964462/
Dir1455976042/
Dir1456012211/
Dir1456018572/
Dir1456019832/
Dir1456020433/
Dir1456026090/
Dir1456033572/
Dir1456047671/
Dir1456056433/
Dir1456076832/
Dir1456078634/
Dir1456085771/
Dir1456087570/
Dir1456089551/
Dir1456094577/
Dir1456101957/
Dir1456110697/
Dir1456113358/
Dir1456127097/
Dir1456131839/
Dir1456136638/
Dir1456139757/
Dir1456145818/
Dir1456148517/
Dir1456152297/
Dir1456153087/
Dir1456156136/
Dir1456156698/
Dir1456156859/
Dir1456157050/
Dir1456158059/
Dir1456158740/
Dir1456159375/
Dir1456160915/
Dir1456161428/
Dir1456161949/
Dir1456162573/
Dir1456163030/
Dir1456164155/
Dir1456164752/
Dir1456167621/
Dir1456173898/
Dir1456174318/
Dir1456175075/
Dir1456175076/
Dir1456175288/
Dir1456175460/
Dir1456176718/
Dir1456178278/
Dir1456178545/
Dir1456179290/
Dir1456182472/
Dir1456183130/
Dir1456185050/
Dir1456186370/
Dir1456186851/
Dir1456186911/
Dir1456189990/
Dir1456195869/
Dir1456209847/
Dir1456237267/
Dir1456237327/
Dir1456237388/
Dir1456237447/
Dir1456238947/
Dir1456239248/
Dir1456239490/
Dir1456239607/
Dir1456239747/
Dir1456239886/
Dir1456240149/
Dir1456240747/
Dir1456241285/
Dir1456241709/
Dir1456243028/
Dir1456243510/
Dir1456246150/
Dir1456246579/
Dir1456249214/
Dir1456249407/
Dir1456250698/
Dir1456251367/
Dir1456251547/
Dir1456251848/
Dir1456252806/
Dir1456253407/
Dir1456254967/
Dir1456255568/
Dir1456256471/
Dir1456256828/
Dir1456257431/
Dir1456257854/
Dir1456257916/
Dir1456261866/
Dir1456262167/
Dir1456262287/
Dir1456262407/
Dir1456262468/
Dir1456262527/
Dir1456262707/
Dir1456265985/
Dir1456268505/
Dir1456270005/
Dir1456270847/
Dir1456271087/
Dir1456271205/
Dir1456272765/
Dir1456273485/
Dir1456273905/
Dir1456274444/
Dir1456276424/
Dir1456276609/
Dir1456277864/
Dir1456285845/
Dir1456291725/
Dir1456294965/
Dir1456297374/
Dir1456301685/
Dir1456303729/
Dir1456304565/
Dir1456305645/
Dir1456307085/
Dir1456307450/
Dir1456308045/
Dir1456310147/
Dir1456312428/
Dir1456312547/
Dir1456312729/
Dir1456312911/
Dir1456313026/
Dir1456314827/
Dir1456314887/
Dir1456315065/
Dir1456315494/
Dir1456315764/
Dir1456316870/
Dir1456318908/
Dir1456321065/
Dir1456322565/
Dir1456323289/
Dir1456323525/
Dir1456324185/
Dir1456328398/
Dir1456329405/
Dir1456330196/
Dir1456331025/
Dir1456331709/
Dir1456333125/
Dir1456337054/
Dir1456337445/
Dir1456338054/
Dir1456338405/
Dir1456339305/
Dir1456340565/
Dir1456340885/
Dir1456340886/
Dir1456342784/
Dir1456343567/
Dir1456343685/
Dir1456343686/
Dir1456344049/
Dir1456344314/
Dir1456345067/
Dir1456345186/
Dir1456345305/
Dir1456345846/
Dir1456347106/
Dir1456347107/
Dir1456347404/
Dir1456347465/
Dir1456347585/
Dir1456347765/
Dir1456348785/
Dir1456349085/
Dir1456350707/
Dir1456351770/
Dir1456352011/
Dir1456352668/
Dir1456352847/
Dir1456355065/
Dir1456357589/
Dir1456358369/
Dir1456358968/
Dir1456358969/
Dir1456359326/
Dir1456359568/
Dir1456361669/
Dir1456362029/
Dir1456364129/
Dir1456365089/
Dir1456366412/
Dir1456366528/
Dir1456366586/
Dir1456366710/
Dir1456367008/
Dir1456368208/
Dir1456369367/
Dir1456369713/
Dir1456370548/
Dir1456371625/
Dir1456372469/
Dir1456377268/
Dir1456381588/
Dir1456381709/
Dir1456386028/
Dir1456386388/
Dir1456386689/
Dir1456386749/
Dir1456386868/
Dir1456388132/
Dir1456388670/
Dir1456388908/
Dir1456389808/
Dir1456393290/
Dir1456393484/
Dir1456397968/
Dir1456402229/
Dir1456402709/
Dir1456402768/
Dir1456403456/
Dir1456404688/
Dir1456406189/
Dir1456408886/
Dir1456409670/
Dir1456410149/
Dir1456410929/
Dir1456414953/
Dir1456415059/
Dir1456415615/
Dir1456416450/
Dir1456416830/
Dir1456417009/
Dir1456417195/
Dir1456417591/
Dir1456418789/
Dir1456419148/
Dir1456419750/
Dir1456422749/
Dir1456424005/
Dir1456424610/
Dir1456424669/
Dir1456425266/
Dir1456425446/
Dir1456425926/
Dir1456426286/
Dir1456427486/
Dir1456427786/
Dir1456428446/
Dir1456429106/
Dir1456429167/
Dir1456429706/
Dir1456431387/
Dir1456432825/
Dir1456434474/
Dir1456434987/
Dir1456435046/
Dir1456436547/
Dir1456437627/
Dir1456438405/
Dir1456439904/
Dir1456440927/
Dir1456442187/
Dir1456442311/
Dir1456444704/
Dir1456446149/
Dir1456446506/
Dir1456447346/
Dir1456447767/
Dir1456451306/
Dir1456451486/
Dir1456453646/
Dir1456453824/
Dir1456453946/
Dir1456455023/
Dir1456455207/
Dir1456455461/
Dir1456456587/
Dir1456458927/
Dir1456459536/
Dir1456461771/
Dir1456462529/
Dir1456462586/
Dir1456468827/
Dir1456472728/
Dir1456475547/
Dir1456476446/
Dir1456478665/
Dir1456481846/
Dir1456482206/
Dir1456484845/
Dir1456489828/
Dir1456491687/
Dir1456494566/
Dir1456494806/
Dir1456496546/
Dir1456497083/
Dir1456497708/
Dir1456498228/
Dir1456498766/
Dir1456498888/
Dir1456500385/
Dir1456500927/
Dir1456502066/
Dir1456502246/
Dir1456502691/
Dir1456502791/
Dir1456503183/
Dir1456504352/
Dir1456504353/
Dir1456504648/
Dir1456504766/
Dir1456505364/
Dir1456505678/
Dir1456506146/
Dir1456508004/
Dir1456508831/
Dir1456509686/
Dir1456509925/
Dir1456510119/
Dir1456510120/
Dir1456511533/
Dir1456511534/
Dir1456511905/
Dir1456512325/
Dir1456515124/
Dir1456515566/
Dir1456516890/
Dir1456517056/
Dir1456517067/
Dir1456518265/
Dir1456518566/
Dir1456519165/
Dir1456519647/
Dir1456519703/
Dir1456519886/
Dir1456519946/
Dir1456520545/
Dir1456521264/
Dir1456521926/
Dir1456523554/
Dir1456524091/
Dir1456526124/
Dir1456526548/
Dir1456527512/
Dir1456528531/
Dir1456529554/
Dir1456530445/
Dir1456535727/
Dir1456537046/
Dir1456537586/
Dir1456539386/
Dir1456541006/
Dir1456549466/
Dir1456550786/
Dir1456557806/
Dir1456563758/
Dir1456565487/
Dir1456569986/
Dir1456570466/
Dir1456577786/
Dir1456583786/
Dir1456590806/
Dir1456599326/
Dir1456604546/
Dir1456609226/
Dir1456613186/
Dir1456613306/
Dir1456613966/
Dir1456614852/
Dir1456623673/
Dir1456631233/
Dir1456633092/
Dir1456647973/
Dir1456650012/
Dir1456677101/
Dir1456690452/
Dir1456696945/
Dir1456699452/
Dir1456699513/
Dir1456700293/
Dir1456702513/
Dir1456703053/
Dir1456705873/
Dir1456706652/
Dir1456717693/
Dir1456722317/
Dir1456722977/
Dir1456728492/
Dir1456729033/
Dir1456729573/
Dir1456729812/
Dir1456731493/
Dir1456733473/
Dir1456734134/
Dir1456737678/
Dir1456740244/
Dir1456742714/
Dir1456744632/
Dir1456750332/
Dir1456750393/
Dir1456751474/
Dir1456751952/
Dir1456752073/
Dir1456752673/
Dir1456753453/
Dir1456753813/
Dir1456755913/
Dir1456756933/
Dir1456757171/
Dir1456757651/
Dir1456758399/
Dir1456758587/
Dir1456758914/
Dir1456759513/
Dir1456760353/
Dir1456760773/
Dir1456761973/
Dir1456763835/
Dir1456764013/
Dir1456764571/
Dir1456764853/
Dir1456765154/
Dir1456765656/
Dir1456766969/
Dir1456767806/
Dir1456767992/
Dir1456769065/
Dir1456769788/
Dir1456770026/
Dir1456770086/
Dir1456770146/
Dir1456770209/
Dir1456770805/
Dir1456771167/
Dir1456772146/
Dir1456772426/
Dir1456773087/
Dir1456773447/
Dir1456773505/
Dir1456774190/
Dir1456774191/
Dir1456774842/
Dir1456775132/
Dir1456775488/
Dir1456775614/
Dir1456777709/
Dir1456778006/
Dir1456778306/
Dir1456779386/
Dir1456779747/
Dir1456781067/
Dir1456781607/
Dir1456781667/
Dir1456781727/
Dir1456782806/
Dir1456783047/
Dir1456783706/
Dir1456784666/
Dir1456784785/
Dir1456787486/
Dir1456790246/
Dir1456790903/
Dir1456792474/
Dir1456794150/
Dir1456801173/
Dir1456810833/
Dir1456811493/
Dir1456814433/
Dir1456815333/
Dir1456817013/
Dir1456820253/
Dir1456820314/
Dir1456821642/
Dir1456822481/
Dir1456823682/
Dir1456823742/
Dir1456825662/
Dir1456826141/
Dir1456832681/
Dir1456832742/
Dir1456833221/
Dir1456834181/
Dir1456838621/
Dir1456841802/
Dir1456841921/
Dir1456842102/
Dir1456842402/
Dir1456842521/
Dir1456842821/
Dir1456842881/
Dir1456843241/
Dir1456844995/
Dir1456845402/
Dir1456847567/
Dir1456847739/
Dir1456847803/
Dir1456848259/
Dir1456848381/
Dir1456853425/
Dir1456855730/
Dir1456856017/
Dir1456856671/
Dir1456857111/
Dir1456858170/
Dir1456858231/
Dir1456859195/
Dir1456860032/
Dir1456860871/
Dir1456860931/
Dir1456861053/
Dir1456862491/
Dir1456862880/
Dir1456867471/
Dir1456867771/
Dir1456869271/
Dir1456869993/
Dir1456873531/
Dir1456874552/
Dir1456875034/
Dir1456875271/
Dir1456875811/
Dir1456878812/
Dir1456882532/
Dir1456883851/
Dir1456884811/
Dir1456888059/
Dir1456889791/
Dir1456891292/
Dir1456892975/
Dir1456893331/
Dir1456902031/
Dir1456903474/
Dir1456904071/
Dir1456907431/
Dir1456910071/
Dir1456910971/
Dir1456914151/
Dir1456916131/
Dir1456916311/
Dir1456916431/
Dir1456916562/
Dir1456916671/
Dir1456917518/
Dir1456918351/
Dir1456920273/
Dir1456920991/
Dir1456929572/
Dir1456930771/
Dir1456930882/
Dir1456931420/
Dir1456931658/
Dir1456932562/
Dir1456934885/
Dir1456935861/
Dir1456936639/
Dir1456937421/
Dir1456937481/
Dir1456938579/
Dir1456940359/
Dir1456941019/
Dir1456941201/
Dir1456941833/
Dir1456942588/
Dir1456943659/
Dir1456944561/
Dir1456947381/
Dir1456947502/
Dir1456949541/
Dir1456949661/
Dir1456949841/
Dir1456950201/
Dir1456950501/
Dir1456951342/
Dir1456951821/
Dir1456952241/
Dir1456953081/
Dir1456953140/
Dir1456954645/
Dir1456954764/
Dir1456954883/
Dir1456955964/
Dir1456956258/
Dir1456956989/
Dir1456957226/
Dir1456958014/
Dir1456958429/
Dir1456959931/
Dir1456960468/
Dir1456960530/
Dir1456960769/
Dir1456961787/
Dir1456964789/
Dir1456965807/
Dir1456967664/
Dir1456970064/
Dir1456973063/
Dir1456973123/
Dir1456976304/
Dir1456977144/
Dir1456977203/
Dir1456978104/
Dir1456979520/
Dir1456980504/
Dir1456983201/
Dir1456986384/
Dir1456986564/
Dir1456992278/
Dir1456993883/
Dir1456994965/
Dir1456995143/
Dir1456995267/
Dir1456999111/
Dir1457002711/
Dir1457003272/
Dir1457003431/
Dir1457004575/
Dir1457005351/
Dir1457006311/
Dir1457009191/
Dir1457012558/
Dir1457013571/
Dir1457014651/
Dir1457015792/
Dir1457018195/
Dir1457019452/
Dir1457020065/
Dir1457020594/
Dir1457021291/
Dir1457021335/
Dir1457022067/
Dir1457023171/
Dir1457026291/
Dir1457026362/
Dir1457026414/
Dir1457027433/
Dir1457028346/
Dir1457028698/
Dir1457028995/
Dir1457030013/
Dir1457030311/
Dir1457031859/
Dir1457034095/
Dir1457034151/
Dir1457034272/
Dir1457035565/
Dir1457036252/
Dir1457038712/
Dir1457039043/
Dir1457039851/
Dir1457040031/
Dir1457040755/
Dir1457041314/
Dir1457041494/
Dir1457041615/
Dir1457041798/
Dir1457041974/
Dir1457042158/
Dir1457042275/
Dir1457045633/
Dir1457047494/
Dir1457047613/
Dir1457051938/
Dir1457051939/
Dir1457053708/
Dir1457053947/
Dir1457054187/
Dir1457057486/
Dir1457057727/
Dir1457059408/
Dir1457060225/
Dir1457060226/
Dir1457061928/
Dir1457064413/
Dir1457064414/
Dir1457065285/
Dir1457066306/
Dir1457067266/
Dir1457068947/
Dir1457070031/
Dir1457076387/
Dir1457083839/
Dir1457084547/
Dir1457084968/
Dir1457088988/
Dir1457090486/
Dir1457095044/
Dir1457095229/
Dir1457096550/
Dir1457097508/
Dir1457105849/
Dir1457107105/
Dir1457108304/
Dir1457110584/
Dir1457110879/
Dir1457111180/
Dir1457111674/
Dir1457112564/
Dir1457113763/
Dir1457120879/
Dir1457130987/
Dir1457131048/
Dir1457131106/
Dir1457131226/
Dir1457131286/
Dir1457131347/
Dir1457131407/
Dir1457131467/
Dir1457131526/
Dir1457131586/
Dir1457131706/
Dir1457131767/
Dir1457131889/
Dir1457131890/
Dir1457132427/
Dir1457132559/
Dir1457132907/
Dir1457133028/
Dir1457133087/
Dir1457133985/
Dir1457135367/
Dir1457135431/
Dir1457135908/
Dir1457136339/
Dir1457142987/
Dir1457144247/
Dir1457149406/
Dir1457149707/
Dir1457150071/
Dir1457152373/
Dir1457152520/
Dir1457154860/
Dir1457163320/
Dir1457164640/
Dir1457171420/
Dir1457184973/
Dir1457185018/
Dir1457185072/
Dir1457186691/
Dir1457186732/
Dir1457186808/
Dir1457186842/
Dir1457186892/
Dir1457186935/
Dir1457188634/
Dir1457188743/
Dir1457188853/
Dir1457188959/
Dir1457190177/
Dir1457190314/
Dir1457191280/
Dir1457198600/
Dir1457198840/
Dir1457200824/
Dir1457200960/
Dir1457201421/
Dir1457202380/
Dir1457205140/
Dir1457211260/
Dir1457211320/
Dir1457212340/
Dir1457222528/
Dir1457222948/
Dir1457223788/
Dir1457223849/
Dir1457224329/
Dir1457236208/
Dir1457236748/
Dir1457248148/
Dir1457262069/
Dir1457271488/
Dir1457289672/
Dir1457294650/
Dir1457295008/
Dir1457295308/
Dir1457296209/
Dir1457298009/
Dir1457301311/
Dir1457303950/
Dir1457308148/
Dir1457308869/
Dir1457311928/
Dir1457321770/
Dir1457322668/
Dir1457325444/
Dir1457329508/
Dir1457329869/
Dir1457334278/
Dir1457337860/
Dir1457341608/
Dir1457342229/
Dir1457343019/
Dir1457344869/
Dir1457347089/
Dir1457349549/
Dir1457351529/
Dir1457355669/
Dir1457358068/
Dir1457359210/
Dir1457359641/
Dir1457362347/
Dir1457363307/
Dir1457364203/
Dir1457364560/
Dir1457364980/
Dir1457365340/
Dir1457365760/
Dir1457366360/
Dir1457367084/
Dir1457368467/
Dir1457369844/
Dir1457370446/
Dir1457370602/
Dir1457371227/
Dir1457374107/
Dir1457374167/
Dir1457374407/
Dir1457374707/
Dir1457375607/
Dir1457380047/
Dir1457385627/
Dir1457385747/
Dir1457385807/
Dir1457385868/
Dir1457385869/
Dir1457385987/
Dir1457386107/
Dir1457386287/
Dir1457386347/
Dir1457386466/
Dir1457386527/
Dir1457387187/
Dir1457387188/
Dir1457388507/
Dir1457388747/
Dir1457389047/
Dir1457389228/
Dir1457389527/
Dir1457389964/
Dir1457399181/
Dir1457400648/
Dir1457401008/
Dir1457401487/
Dir1457401728/
Dir1457402147/
Dir1457402267/
Dir1457402387/
Dir1457405990/
Dir1457407069/
Dir1457407428/
Dir1457418386/
Dir1457419409/
Dir1457419475/
Dir1457419587/
Dir1457421621/
Dir1457422881/
Dir1457423605/
Dir1457423725/
Dir1457423841/
Dir1457424506/
Dir1457424685/
Dir1457424925/
Dir1457425042/
Dir1457425704/
Dir1457428166/
Dir1457430561/
Dir1457431127/
Dir1457431728/
Dir1457431943/
Dir1457432573/
Dir1457432574/
Dir1457436564/
Dir1457437523/
Dir1457437884/
Dir1457438364/
Dir1457438967/
Dir1457440523/
Dir1457441304/
Dir1457441425/
Dir1457441784/
Dir1457442925/
Dir1457443224/
Dir1457443704/
Dir1457444665/
Dir1457444845/
Dir1457446826/
Dir1457447003/
Dir1457447124/
Dir1457447185/
Dir1457448984/
Dir1457449396/
Dir1457449823/
Dir1457449944/
Dir1457450367/
Dir1457451506/
Dir1457451507/
Dir1457452467/
Dir1457453070/
Dir1457453964/
Dir1457453965/
Dir1457454983/
Dir1457455285/
Dir1457457144/
Dir1457458402/
Dir1457459546/
Dir1457461152/
Dir1457461211/
Dir1457462413/
Dir1457464095/
Dir1457464515/
Dir1457465053/
Dir1457465113/
Dir1457465537/
Dir1457465712/
Dir1457466553/
Dir1457468593/
Dir1457470513/
Dir1457470873/
Dir1457472012/
Dir1457472972/
Dir1457474656/
Dir1457474895/
Dir1457475136/
Dir1457476753/
Dir1457480473/
Dir1457482093/
Dir1457482157/
Dir1457482871/
Dir1457482933/
Dir1457482992/
Dir1457483052/
Dir1457483173/
Dir1457483293/
Dir1457485153/
Dir1457488873/
Dir1457490253/
Dir1457490973/
Dir1457491094/
Dir1457491330/
Dir1457492173/
Dir1457493076/
Dir1457494417/
Dir1457495716/
Dir1457495773/
Dir1457496502/
Dir1457496925/
Dir1457498177/
Dir1457498233/
Dir1457498292/
Dir1457500213/
Dir1457501254/
Dir1457502193/
Dir1457507833/
Dir1457509453/
Dir1457509692/
Dir1457512217/
Dir1457514793/
Dir1457516532/
Dir1457518046/
Dir1457518453/
Dir1457518573/
Dir1457520496/
Dir1457521693/
Dir1457522411/
Dir1457522713/
Dir1457528654/
Dir1457530066/
Dir1457530335/
Dir1457530679/
Dir1457531233/
Dir1457531953/
Dir1457532011/
Dir1457532916/
Dir1457538081/
Dir1457538564/
Dir1457538682/
Dir1457539351/
Dir1457539449/
Dir1457543481/
Dir1457543665/
Dir1457547924/
Dir1457548764/
Dir1457549906/
Dir1457549965/
Dir1457550625/
Dir1457551764/
Dir1457552784/
Dir1457552964/
Dir1457553443/
Dir1457554824/
Dir1457555548/
Dir1457556923/
Dir1457558124/
Dir1457558243/
Dir1457559743/
Dir1457559744/
Dir1457560045/
Dir1457560401/
Dir1457560643/
Dir1457561363/
Dir1457562202/
Dir1457562503/
Dir1457562564/
Dir1457562625/
Dir1457562803/
Dir1457563584/
Dir1457563703/
Dir1457563883/
Dir1457564243/
Dir1457565324/
Dir1457566824/
Dir1457566944/
Dir1457567061/
Dir1457567843/
Dir1457567905/
Dir1457568264/
Dir1457569462/
Dir1457571504/
Dir1457573425/
Dir1457575464/
Dir1457579602/
Dir1457580444/
Dir1457580512/
Dir1457582333/
Dir1457583505/
Dir1457583827/
Dir1457585604/
Dir1457585964/
Dir1457587524/
Dir1457588186/
Dir1457588543/
Dir1457591904/
Dir1457597423/
Dir1457597485/
Dir1457597663/
Dir1457600797/
Dir1457601923/
Dir1457603483/
Dir1457603544/
Dir1457603782/
Dir1457603962/
Dir1457604402/
Dir1457606542/
Dir1457607333/
Dir1457608405/
Dir1457611224/
Dir1457612304/
Dir1457612664/
Dir1457613149/
Dir1457614464/
Dir1457616864/
Dir1457617644/
Dir1457621484/
Dir1457621724/
Dir1457622447/
Dir1457623764/
Dir1457627906/
Dir1457629106/
Dir1457630723/
Dir1457633486/
Dir1457634026/
Dir1457634264/
Dir1457637862/
Dir1457642847/
Dir1457647764/
Dir1457648126/
Dir1457648366/
Dir1457648784/
Dir1457648906/
Dir1457649024/
Dir1457649145/
Dir1457649386/
Dir1457649506/
Dir1457650155/
Dir1457650635/
Dir1457650872/
Dir1457650958/
Dir1457651293/
Dir1457651373/
Dir1457652256/
Dir1457652435/
Dir1457653575/
Dir1457654472/
Dir1457655615/
Dir1457656033/
Dir1457656995/
Dir1457657835/
Dir1457658916/
Dir1457659274/
Dir1457662875/
Dir1457662932/
Dir1457663054/
Dir1457663176/
Dir1457663352/
Dir1457663655/
Dir1457664434/
Dir1457665094/
Dir1457666610/
Dir1457667516/
Dir1457669716/
Dir1457672116/
Dir1457672175/
Dir1457674404/
Dir1457677216/
Dir1457678112/
Dir1457680334/
Dir1457683452/
Dir1457683813/
Dir1457685287/
Dir1457688314/
Dir1457690724/
Dir1457690801/
Dir1457691316/
Dir1457692395/
Dir1457694675/
Dir1457696292/
Dir1457697372/
Dir1457697555/
Dir1457699593/
Dir1457702234/
Dir1457704275/
Dir1457704276/
Dir1457706255/
Dir1457707333/
Dir1457707692/
Dir1457707812/
Dir1457708823/
Dir1457708847/
Dir1457709257/
Dir1457711954/
Dir1457712915/
Dir1457714175/
Dir1457714176/
Dir1457714415/
Dir1457715614/
Dir1457715750/
Dir1457716936/
Dir1457719035/
Dir1457719095/
Dir1457721567/
Dir1457721872/
Dir1457722109/
Dir1457722168/
Dir1457723079/
Dir1457723908/
Dir1457724027/
Dir1457724989/
Dir1457725348/
Dir1457726865/
Dir1457728047/
Dir1457728589/
Dir1457730928/
Dir1457732667/
Dir1457733373/
Dir1457733374/
Dir1457733567/
Dir1457733997/
Dir1457736268/
Dir1457736388/
Dir1457737828/
Dir1457738428/
Dir1457739027/
Dir1457739390/
Dir1457739567/
Dir1457741427/
Dir1457741908/
Dir1457742988/
Dir1457743947/
Dir1457745447/
Dir1457748448/
Dir1457748687/
Dir1457749888/
Dir1457750488/
Dir1457758827/
Dir1457760507/
Dir1457761467/
Dir1457769208/
Dir1457772147/
Dir1457792967/
Dir1457798928/
Dir1457799867/
Dir1457803347/
Dir1457811029/
Dir1457812648/
Dir1457814329/
Dir1457821108/
Dir1457825487/
Dir1457826507/
Dir1457832989/
Dir1457842227/
Dir1457876007/
Dir1457876727/
Dir1457890887/
Dir1457896707/
Dir1457910567/
Dir1457923647/
Dir1457924629/
Dir1457933964/
Dir1457938285/
Dir1457939248/
Dir1457945010/
Dir1457949201/
Dir1457951908/
Dir1457953223/
Dir1457954964/
Dir1457955813/
Dir1457962230/
Dir1457963011/
Dir1457963310/
Dir1457963384/
Dir1457966552/
Dir1457969123/
Dir1457970146/
Dir1457970803/
Dir1457970864/
Dir1457971894/
Dir1457972910/
Dir1457973087/
Dir1457974163/
Dir1457976151/
Dir1457976387/
Dir1457976525/
Dir1457977232/
Dir1457977471/
Dir1457977644/
Dir1457978914/
Dir1457979083/
Dir1457979330/
Dir1457980051/
Dir1457980762/
Dir1457980825/
Dir1457982239/
Dir1457982270/
Dir1457982387/
Dir1457983064/
Dir1457985641/
Dir1457985833/
Dir1457985874/
Dir1457986180/
Dir1457986657/
Dir1457986902/
Dir1457987910/
Dir1457988819/
Dir1457988997/
Dir1457989840/
Dir1457990675/
Dir1457990676/
Dir1457990917/
Dir1457991034/
Dir1457991880/
Dir1457993080/
Dir1457994555/
Dir1457994621/
Dir1457994973/
Dir1457995450/
Dir1457997762/
Dir1457999253/
Dir1458000236/
Dir1458001238/
Dir1458002372/
Dir1458002503/
Dir1458002554/
Dir1458002683/
Dir1458003156/
Dir1458003277/
Dir1458006758/
Dir1458007466/
Dir1458007467/
Dir1458007468/
Dir1458007780/
Dir1458008073/
Dir1458008918/
Dir1458009221/
Dir1458009518/
Dir1458010297/
Dir1458012223/
Dir1458012458/
Dir1458014380/
Dir1458014439/
Dir1458014677/
Dir1458014922/
Dir1458016063/
Dir1458017980/
Dir1458018881/
Dir1458019234/
Dir1458019362/
Dir1458021850/
Dir1458025116/
Dir1458027040/
Dir1458027241/
Dir1458027822/
Dir1458027880/
Dir1458028538/
Dir1458030393/
Dir1458033455/
Dir1458035135/
Dir1458036099/
Dir1458036231/
Dir1458037959/
Dir1458038134/
Dir1458040658/
Dir1458044193/
Dir1458047673/
Dir1458049057/
Dir1458050504/
Dir1458050567/
Dir1458051758/
Dir1458051820/
Dir1458052270/
Dir1458052442/
Dir1458054273/
Dir1458054336/
Dir1458054755/
Dir1458056801/
Dir1458057092/
Dir1458058470/
Dir1458058528/
Dir1458058956/
Dir1458060268/
Dir1458060816/
Dir1458060926/
Dir1458060994/
Dir1458061228/
Dir1458061532/
Dir1458062864/
Dir1458063934/
Dir1458064299/
Dir1458064598/
Dir1458064838/
Dir1458064884/
Dir1458065318/
Dir1458067107/
Dir1458067169/
Dir1458067228/
Dir1458067471/
Dir1458068185/
Dir1458068662/
Dir1458069209/
Dir1458069448/
Dir1458069507/
Dir1458073843/
Dir1458076053/
Dir1458077016/
Dir1458077194/
Dir1458077982/
Dir1458079910/
Dir1458080024/
Dir1458080502/
Dir1458081110/
Dir1458081169/
Dir1458081472/
Dir1458081701/
Dir1458082368/
Dir1458083444/
Dir1458084470/
Dir1458085547/
Dir1458086438/
Dir1458087104/
Dir1458087288/
Dir1458088302/
Dir1458088423/
Dir1458090282/
Dir1458092082/
Dir1458093541/
Dir1458093603/
Dir1458095022/
Dir1458099528/
Dir1458099697/
Dir1458103723/
Dir1458103840/
Dir1458107442/
Dir1458107859/
Dir1458108043/
Dir1458108882/
Dir1458109060/
Dir1458111409/
Dir1458114158/
Dir1458114715/
Dir1458115180/
Dir1458115784/
Dir1458116626/
Dir1458117817/
Dir1458120579/
Dir1458120884/
Dir1458121421/
Dir1458121778/
Dir1458122271/
Dir1458122562/
Dir1458123047/
Dir1458123108/
Dir1458123167/
Dir1458124062/
Dir1458128080/
Dir1458129850/
Dir1458132405/
Dir1458132582/
Dir1458134503/
Dir1458135342/
Dir1458135762/
Dir1458136425/
Dir1458136842/
Dir1458137121/
Dir1458137621/
Dir1458138047/
Dir1458138224/
Dir1458138817/
Dir1458140209/
Dir1458140836/
Dir1458141943/
Dir1458142968/
Dir1458143316/
Dir1458143624/
Dir1458144358/
Dir1458145237/
Dir1458145300/
Dir1458145301/
Dir1458145420/
Dir1458146219/
Dir1458146450/
Dir1458146496/
Dir1458147401/
Dir1458147854/
Dir1458149685/
Dir1458152375/
Dir1458152504/
Dir1458152856/
Dir1458153284/
Dir1458153412/
Dir1458154368/
Dir1458155503/
Dir1458156702/
Dir1458158255/
Dir1458158387/
Dir1458158502/
Dir1458160006/
Dir1458160426/
Dir1458160670/
Dir1458160908/
Dir1458161028/
Dir1458161146/
Dir1458161208/
Dir1458161323/
Dir1458163959/
Dir1458165040/
Dir1458165588/
Dir1458166989/
Dir1458167957/
Dir1458168186/
Dir1458168672/
Dir1458169095/
Dir1458169211/
Dir1458169267/
Dir1458169461/
Dir1458172338/
Dir1458176950/
Dir1458178330/
Dir1458179708/
Dir1458181091/
Dir1458181390/
Dir1458181571/
Dir1458183008/
Dir1458183675/
Dir1458184048/
Dir1458185169/
Dir1458185776/
Dir1458190689/
Dir1458191475/
Dir1458195494/
Dir1458196099/
Dir1458199810/
Dir1458200835/
Dir1458204367/
Dir1458204554/
Dir1458204797/
Dir1458205147/
Dir1458205459/
Dir1458206953/
Dir1458207910/
Dir1458208818/
Dir1458209255/
Dir1458209718/
Dir1458213137/
Dir1458215299/
Dir1458216016/
Dir1458216475/
Dir1458216855/
Dir1458218949/
Dir1458221352/
Dir1458223211/
Dir1458223987/
Dir1458226508/
Dir1458227254/
Dir1458227745/
Dir1458230545/
Dir1458230681/
Dir1458232156/
Dir1458232516/
Dir1458232631/
Dir1458234687/
Dir1458236773/
Dir1458240975/
Dir1458242061/
Dir1458243192/
Dir1458243609/
Dir1458243673/
Dir1458243851/
Dir1458244513/
Dir1458246367/
Dir1458246492/
Dir1458247219/
Dir1458249137/
Dir1458249378/
Dir1458251232/
Dir1458252488/
Dir1458254467/
Dir1458254589/
Dir1458255316/
Dir1458257647/
Dir1458258369/
Dir1458259763/
Dir1458259764/
Dir1458259937/
Dir1458260894/
Dir1458262030/
Dir1458262954/
Dir1458263891/
Dir1458265875/
Dir1458271507/
Dir1458272172/
Dir1458273873/
Dir1458275288/
Dir1458275419/
Dir1458276372/
Dir1458280033/
Dir1458280959/
Dir1458284477/
Dir1458284678/
Dir1458285794/
Dir1458289757/
Dir1458290347/
Dir1458291006/
Dir1458291222/
Dir1458291432/
Dir1458291620/
Dir1458294491/
Dir1458294859/
Dir1458296168/
Dir1458296778/
Dir1458297912/
Dir1458300833/
Dir1458301271/
Dir1458305109/
Dir1458306446/
Dir1458308352/
Dir1458308840/
Dir1458311484/
Dir1458312256/
Dir1458313643/
Dir1458313869/
Dir1458314046/
Dir1458314227/
Dir1458315070/
Dir1458315372/
Dir1458317293/
Dir1458317888/
Dir1458319394/
Dir1458319531/
Dir1458319709/
Dir1458319865/
Dir1458319868/
Dir1458319870/
Dir1458319877/
Dir1458319878/
Dir1458319883/
Dir1458320043/
Dir1458320048/
Dir1458320052/
Dir1458320055/
Dir1458320057/
Dir1458320061/
Dir1458320205/
Dir1458320207/
Dir1458320210/
Dir1458320217/
Dir1458320360/
Dir1458320361/
Dir1458320364/
Dir1458320370/
Dir1458320372/
Dir1458320374/
Dir1458320508/
Dir1458320553/
Dir1458320557/
Dir1458320560/
Dir1458320565/
Dir1458320572/
Dir1458320580/
Dir1458320709/
Dir1458320793/
Dir1458320829/
Dir1458320831/
Dir1458320919/
Dir1458320922/
Dir1458320928/
Dir1458321063/
Dir1458321065/
Dir1458321068/
Dir1458321076/
Dir1458321080/
Dir1458321088/
Dir1458322258/
Dir1458322575/
Dir1458323115/
Dir1458323241/
Dir1458323545/
Dir1458323720/
Dir1458324500/
Dir1458325333/
Dir1458325512/
Dir1458327188/
Dir1458327491/
Dir1458328525/
Dir1458329660/
Dir1458330434/
Dir1458330616/
Dir1458331293/
Dir1458331772/
Dir1458332087/
Dir1458332502/
Dir1458332561/
Dir1458333058/
Dir1458333159/
Dir1458333349/
Dir1458334416/
Dir1458334772/
Dir1458335863/
Dir1458336758/
Dir1458337423/
Dir1458338733/
Dir1458341322/
Dir1458342105/
Dir1458342333/
Dir1458342490/
Dir1458344676/
Dir1458346361/
Dir1458346475/
Dir1458347499/
Dir1458348344/
Dir1458351097/
Dir1458351344/
Dir1458351638/
Dir1458354867/
Dir1458356865/
Dir1458357697/
Dir1458360153/
Dir1458361838/
Dir1458372993/
Dir1458382244/
Dir1458385775/
Dir1458387084/
Dir1458394606/
Dir1458401189/
Dir1458402994/
Dir1458404909/
Dir1458408673/
Dir1458409177/
Dir1458415105/
Dir1458419430/
Dir1458423087/
Dir1458430202/
Dir1458436769/
Dir1458437312/
Dir1458440311/
Dir1458441932/
Dir1458447996/
Dir1458451992/
Dir1458461850/
Dir1458466710/
Dir1458468731/
Dir1458471633/
Dir1458473297/
Dir1458473405/
Dir1458490167/
Dir1458519938/
Dir1458520293/
Dir1458520356/
Dir1458527193/
Dir1458527547/
Dir1458528392/
Dir1458531460/
Dir1458534029/
Dir1458534637/
Dir1458538250/
Dir1458538530/
Dir1458538602/
Dir1458538830/
Dir1458539194/
Dir1458539436/
Dir1458539551/
Dir1458540513/
Dir1458543511/
Dir1458544597/
Dir1458545487/
Dir1458548493/
Dir1458549022/
Dir1458552454/
Dir1458557560/
Dir1458560793/
Dir1458562023/
Dir1458562661/
Dir1458562707/
Dir1458562828/
Dir1458562887/
Dir1458565231/
Dir1458565449/
Dir1458566679/
Dir1458566916/
Dir1458569385/
Dir1458569971/
Dir1458570268/
Dir1458570939/
Dir1458571737/
Dir1458571854/
Dir1458572547/
Dir1458574475/
Dir1458575555/
Dir1458575791/
Dir1458576319/
Dir1458576595/
Dir1458576699/
Dir1458576810/
Dir1458577110/
Dir1458577295/
Dir1458577528/
Dir1458577987/
Dir1458579159/
Dir1458580655/
Dir1458581358/
Dir1458581493/
Dir1458581673/
Dir1458581850/
Dir1458582693/
Dir1458583070/
Dir1458583236/
Dir1458583447/
Dir1458584195/
Dir1458584373/
Dir1458584548/
Dir1458588167/
Dir1458589416/
Dir1458589594/
Dir1458589989/
Dir1458590667/
Dir1458591148/
Dir1458591538/
Dir1458592307/
Dir1458593439/
Dir1458595023/
Dir1458595472/
Dir1458596021/
Dir1458596456/
Dir1458597753/
Dir1458601276/
Dir1458601651/
Dir1458602247/
Dir1458602899/
Dir1458603041/
Dir1458603805/
Dir1458604346/
Dir1458604395/
Dir1458605417/
Dir1458606444/
Dir1458609049/
Dir1458610783/
Dir1458611872/
Dir1458613728/
Dir1458615160/
Dir1458616357/
Dir1458616849/
Dir1458619836/
Dir1458620379/
Dir1458622846/
Dir1458624679/
Dir1458626740/
Dir1458627345/
Dir1458631723/
Dir1458632855/
Dir1458633276/
Dir1458633459/
Dir1458636936/
Dir1458641261/
Dir1458641324/
Dir1458642199/
Dir1458642530/
Dir1458642645/
Dir1458645661/
Dir1458646252/
Dir1458646357/
Dir1458649365/
Dir1458650076/
Dir1458650373/
Dir1458653014/
Dir1458653078/
Dir1458655126/
Dir1458656076/
Dir1458656978/
Dir1458658306/
Dir1458659465/
Dir1458663145/
Dir1458667893/
Dir1458668726/
Dir1458669560/
Dir1458669924/
Dir1458677543/
Dir1458678026/
Dir1458678083/
Dir1458678139/
Dir1458678140/
Dir1458678198/
Dir1458678320/
Dir1458679217/
Dir1458680360/
Dir1458680426/
Dir1458680712/
Dir1458681220/
Dir1458681405/
Dir1458681876/
Dir1458682314/
Dir1458683445/
Dir1458683449/
Dir1458683570/
Dir1458684766/
Dir1458687632/
Dir1458687870/
Dir1458688039/
Dir1458688401/
Dir1458688702/
Dir1458689301/
Dir1458689431/
Dir1458690320/
Dir1458690979/
Dir1458691096/
Dir1458692482/
Dir1458692899/
Dir1458693082/
Dir1458693685/
Dir1458694106/
Dir1458695612/
Dir1458696978/
Dir1458697722/
Dir1458698870/
Dir1458699654/
Dir1458700398/
Dir1458701258/
Dir1458707241/
Dir1458708201/
Dir1458708976/
Dir1458709158/
Dir1458709505/
Dir1458710068/
Dir1458711083/
Dir1458713428/
Dir1458716944/
Dir1458718876/
Dir1458721858/
Dir1458722252/
Dir1458723449/
Dir1458725848/
Dir1458726267/
Dir1458727025/
Dir1458729559/
Dir1458730198/
Dir1458730470/
Dir1458731319/
Dir1458732708/
Dir1458732724/
Dir1458733769/
Dir1458737079/
Dir1458738987/
Dir1458739350/
Dir1458739544/
Dir1458739720/
Dir1458740451/
Dir1458742958/
Dir1458743535/
Dir1458743553/
Dir1458743977/
Dir1458744040/
Dir1458745527/
Dir1458746278/
Dir1458746969/
Dir1458747655/
Dir1458747656/
Dir1458747940/
Dir1458748185/
Dir1458748515/
Dir1458748767/
Dir1458749142/
Dir1458750687/
Dir1458750936/
Dir1458752564/
Dir1458752863/
Dir1458754001/
Dir1458754262/
Dir1458754477/
Dir1458754596/
Dir1458755938/
Dir1458756239/
Dir1458756451/
Dir1458757060/
Dir1458757309/
Dir1458757541/
Dir1458759883/
Dir1458760650/
Dir1458761259/
Dir1458763183/
Dir1458765022/
Dir1458766246/
Dir1458766866/
Dir1458769176/
Dir1458769177/
Dir1458769370/
Dir1458769483/
Dir1458769668/
Dir1458769956/
Dir1458770198/
Dir1458770650/
Dir1458771589/
Dir1458771641/
Dir1458771830/
Dir1458773738/
Dir1458775960/
Dir1458777186/
Dir1458777189/
Dir1458777192/
Dir1458777317/
Dir1458777407/
Dir1458778070/
Dir1458778118/
Dir1458779558/
Dir1458780442/
Dir1458780810/
Dir1458781487/
Dir1458781750/
Dir1458782051/
Dir1458782499/
Dir1458783585/
Dir1458783703/
Dir1458785746/
Dir1458786432/
Dir1458786863/
Dir1458791567/
Dir1458792528/
Dir1458792529/
Dir1458792726/
Dir1458793209/
Dir1458794674/
Dir1458794684/
Dir1458795283/
Dir1458795797/
Dir1458796101/
Dir1458796419/
Dir1458796880/
Dir1458797390/
Dir1458797737/
Dir1458798343/
Dir1458798715/
Dir1458798893/
Dir1458801518/
Dir1458801949/
Dir1458802372/
Dir1458805012/
Dir1458805540/
Dir1458805705/
Dir1458808007/
Dir1458808187/
Dir1458808283/
Dir1458811666/
Dir1458813224/
Dir1458815578/
Dir1458816562/
Dir1458819088/
Dir1458819427/
Dir1458819436/
Dir1458819562/
Dir1458819567/
Dir1458819714/
Dir1458819718/
Dir1458819720/
Dir1458819840/
Dir1458819846/
Dir1458819985/
Dir1458819989/
Dir1458819990/
Dir1458820115/
Dir1458820120/
Dir1458820127/
Dir1458820247/
Dir1458820255/
Dir1458820380/
Dir1458820384/
Dir1458820520/
Dir1458820522/
Dir1458820525/
Dir1458820643/
Dir1458820645/
Dir1458825471/
Dir1458826674/
Dir1458827208/
Dir1458827342/
Dir1458827383/
Dir1458827736/
Dir1458828639/
Dir1458829001/
Dir1458829592/
Dir1458830852/
Dir1458831335/
Dir1458832169/
Dir1458832534/
Dir1458832843/
Dir1458833679/
Dir1458833803/
Dir1458834158/
Dir1458834330/
Dir1458834399/
Dir1458834577/
Dir1458834632/
Dir1458834722/
Dir1458834838/
Dir1458835379/
Dir1458835512/
Dir1458836034/
Dir1458839021/
Dir1458839460/
Dir1458839461/
Dir1458839462/
Dir1458840666/
Dir1458841311/
Dir1458841759/
Dir1458845239/
Dir1458845868/
Dir1458846090/
Dir1458846346/
Dir1458847538/
Dir1458848017/
Dir1458848496/
Dir1458849935/
Dir1458850084/
Dir1458850262/
Dir1458850669/
Dir1458851437/
Dir1458851737/
Dir1458853539/
Dir1458856291/
Dir1458856536/
Dir1458857976/
Dir1458858574/
Dir1458859232/
Dir1458860137/
Dir1458860434/
Dir1458860672/
Dir1458862234/
Dir1458863678/
Dir1458864518/
Dir1458873093/
Dir1458877894/
Dir1458884498/
Dir1458892328/
Dir1458892333/
Dir1458892334/
Dir1458892337/
Dir1458892344/
Dir1458892473/
Dir1458892475/
Dir1458892481/
Dir1458892484/
Dir1458892490/
Dir1458892626/
Dir1458892631/
Dir1458892632/
Dir1458892637/
Dir1458892638/
Dir1458892646/
Dir1458894647/
Dir1458895267/
Dir1458895536/
Dir1458895915/
Dir1458900940/
Dir1458905254/
Dir1458905406/
Dir1458908848/
Dir1458912270/
Dir1458913230/
Dir1458913289/
Dir1458913349/
Dir1458916474/
Dir1458918637/
Dir1458918759/
Dir1458920309/
Dir1458921468/
Dir1458921471/
Dir1458921472/
Dir1458924819/
Dir1458925183/
Dir1458927070/
Dir1458927582/
Dir1458928076/
Dir1458931061/
Dir1458931666/
Dir1458931868/
Dir1458932252/
Dir1458933170/
Dir1458936327/
Dir1458937719/
Dir1458937827/
Dir1458937840/
Dir1458938375/
Dir1458939208/
Dir1458939450/
Dir1458939938/
Dir1458941008/
Dir1458941249/
Dir1458942006/
Dir1458942633/
Dir1458943121/
Dir1458943774/
Dir1458944380/
Dir1458945093/
Dir1458945535/
Dir1458948668/
Dir1458948738/
Dir1458952972/
Dir1458956203/
Dir1458957037/
Dir1458957697/
Dir1458958304/
Dir1458958536/
Dir1458970060/
Dir1458970420/
Dir1458970532/
Dir1458972272/
Dir1458974140/
Dir1458980023/
Dir1458995008/
Dir1458995737/
Dir1458995790/
Dir1458995912/
Dir1458995913/
Dir1458996091/
Dir1458996216/
Dir1458996696/
Dir1458999150/
Dir1459001727/
Dir1459002710/
Dir1459008489/
Dir1459009660/
Dir1459013497/
Dir1459018530/
Dir1459036764/
Dir1459046092/
Dir1459047090/
Dir1459056206/
Dir1459061676/
Dir1459067413/
Dir1459069231/
Dir1459080027/
Dir1459089227/
Dir1459108052/
Dir1459108585/
Dir1459110387/
Dir1459114407/
Dir1459115553/
Dir1459120049/
Dir1459121401/
Dir1459122693/
Dir1459122748/
Dir1459132303/
Dir1459132984/
Dir1459143066/
Dir1459147230/
Dir1459155204/
Dir1459155272/
Dir1459162115/
Dir1459162191/
Dir1459164606/
Dir1459170417/
Dir1459170931/
Dir1459171172/
Dir1459172844/
Dir1459175501/
Dir1459178967/
Dir1459180822/
Dir1459182142/
Dir1459184071/
Dir1459186172/
Dir1459186315/
Dir1459186897/
Dir1459187374/
Dir1459188563/
Dir1459188811/
Dir1459192407/
Dir1459192826/
Dir1459194929/
Dir1459195502/
Dir1459195797/
Dir1459196613/
Dir1459197031/
Dir1459197571/
Dir1459202427/
Dir1459202859/
Dir1459203098/
Dir1459203281/
Dir1459203519/
Dir1459204724/
Dir1459207881/
Dir1459208266/
Dir1459209275/
Dir1459209877/
Dir1459213302/
Dir1459213887/
Dir1459214873/
Dir1459220157/
Dir1459229476/
Dir1459231609/
Dir1459232010/
Dir1459232514/
Dir1459232810/
Dir1459233217/
Dir1459237900/
Dir1459239818/
Dir1459240291/
Dir1459241071/
Dir1459242463/
Dir1459245692/
Dir1459247138/
Dir1459248915/
Dir1459251023/
Dir1459251216/
Dir1459253551/
Dir1459254625/
Dir1459256738/
Dir1459257698/
Dir1459259070/
Dir1459259640/
Dir1459259729/
Dir1459261295/
Dir1459264503/
Dir1459264652/
Dir1459265128/
Dir1459265614/
Dir1459268160/
Dir1459272710/
Dir1459274314/
Dir1459275931/
Dir1459276530/
Dir1459278633/
Dir1459279801/
Dir1459281293/
Dir1459283083/
Dir1459283376/
Dir1459283478/
Dir1459284692/
Dir1459286375/
Dir1459287356/
Dir1459289380/
Dir1459289438/
Dir1459289494/
Dir1459289560/
Dir1459289801/
Dir1459290157/
Dir1459290582/
Dir1459293556/
Dir1459294222/
Dir1459294657/
Dir1459294716/
Dir1459295074/
Dir1459295262/
Dir1459298017/
Dir1459305169/
Dir1459305945/
Dir1459306123/
Dir1459306420/
Dir1459306472/
Dir1459310980/
Dir1459313914/
Dir1459315061/
Dir1459315930/
Dir1459317034/
Dir1459318773/
Dir1459320456/
Dir1459320698/
Dir1459320813/
Dir1459321061/
Dir1459321175/
Dir1459321371/
Dir1459321594/
Dir1459333657/
Dir1459333760/
Dir1459333881/
Dir1459334000/
Dir1459334048/
Dir1459334114/
Dir1459334184/
Dir1459334228/
Dir1459334336/
Dir1459334443/
Dir1459335690/
Dir1459335876/
Dir1459336357/
Dir1459336835/
Dir1459337798/
Dir1459338038/
Dir1459338701/
Dir1459338764/
Dir1459338873/
Dir1459338982/
Dir1459339089/
Dir1459339472/
Dir1459339656/
Dir1459339710/
Dir1459340986/
Dir1459341403/
Dir1459344117/
Dir1459344752/
Dir1459346710/
Dir1459347047/
Dir1459347544/
Dir1459349317/
Dir1459350142/
Dir1459350474/
Dir1459351057/
Dir1459352141/
Dir1459353520/
Dir1459354931/
Dir1459355621/
Dir1459355995/
Dir1459356266/
Dir1459356541/
Dir1459357216/
Dir1459357425/
Dir1459358629/
Dir1459359059/
Dir1459438828/
Dir1459438831/
Dir1459438834/
Dir1459438835/
Dir1459438836/
Dir1459438840/
Dir1459438841/
Dir1459438842/
Dir1459438847/
Dir1459438848/
Dir1459438849/
Dir1459438851/
Dir1459438853/
Dir1459438854/
Dir1459438855/
Dir1459438856/
Dir1459438861/
Dir1459438862/
Dir1459438864/
Dir1459454977/
Dir1459456539/
Dir1459458519/
Dir1459459719/
Dir1459460676/
Dir1459467011/
Dir1459469022/
Dir1459469196/
Dir1459469263/
Dir1459469264/
Dir1459469319/
Dir1459469441/
Dir1459469554/
Dir1459469675/
Dir1459469737/
Dir1459469738/
Dir1459469793/
Dir1459469881/
Dir1459469937/
Dir1459469982/
Dir1459470096/
Dir1459470153/
Dir1459470275/
Dir1459470336/
Dir1459470393/
Dir1459470455/
Dir1459470523/
Dir1459471479/
Dir1459471667/
Dir1459471719/
Dir1459472082/
Dir1459473279/
Dir1459473757/
Dir1459473818/
Dir1459474537/
Dir1459474719/
Dir1459475006/
Dir1459477041/
Dir1459478075/
Dir1459478209/
Dir1459478933/
Dir1459479289/
Dir1459480167/
Dir1459480240/
Dir1459482763/
Dir1459483000/
Dir1459484378/
Dir1459487324/
Dir1459491110/
Dir1459491227/
Dir1459491760/
Dir1459492119/
Dir1459492602/
Dir1459493567/
Dir1459496575/
Dir1459496926/
Dir1459497107/
Dir1459497157/
Dir1459497224/
Dir1459498362/
Dir1459500462/
Dir1459503588/
Dir1459504720/
Dir1459506047/
Dir1459507123/
Dir1459507850/
Dir1459510668/
Dir1459512236/
Dir1459512281/
Dir1459512602/
Dir1459512715/
Dir1459512884/
Dir1459513661/
Dir1459513799/
Dir1459516907/
Dir1459517199/
Dir1459517322/
Dir1459517443/
Dir1459517995/
Dir1459522544/
Dir1459522667/
Dir1459522724/
Dir1459523330/
Dir1459523390/
Dir1459523868/
Dir1459527175/
Dir1459527942/
Dir1459529872/
Dir1459529983/
Dir1459531250/
Dir1459531359/
Dir1459531482/
Dir1459531665/
Dir1459532687/
Dir1459532741/
Dir1459533165/
Dir1459533220/
Dir1459533347/
Dir1459534360/
Dir1459534841/
Dir1459535034/
Dir1459535383/
Dir1459537187/
Dir1459538261/
Dir1459538461/
Dir1459541143/
Dir1459542169/
Dir1459543365/
Dir1459544929/
Dir1459546298/
Dir1459547440/
Dir1459549180/
Dir1459552005/
Dir1459552423/
Dir1459552909/
Dir1459553430/
Dir1459558800/
Dir1459560228/
Dir1459563347/
Dir1459564365/
Dir1459568274/
Dir1459575221/
Dir1459580089/
Dir1459601449/
Dir1459612600/
Dir1459618012/
Dir1459618306/
Dir1459620224/
Dir1459623228/
Dir1459625630/
Dir1459631200/
Dir1459631861/
Dir1459658174/
Dir1459658223/
Dir1459658224/
Dir1459661233/
Dir1459665254/
Dir1459668682/
Dir1459671134/
Dir1459681036/
Dir1459683435/
Dir1459686861/
Dir1459691632/
Dir1459693960/
Dir1459694835/
Dir1459703720/
Dir1459719915/
Dir1459729340/
Dir1459730478/
Dir1459732517/
Dir1459734132/
Dir1459742417/
Dir1459756818/
Dir1459757059/
Dir1459759099/
Dir1459764212/
Dir1459765282/
Dir1459767532/
Dir1459767920/
Dir1459770676/
Dir1459774115/
Dir1459776747/
Dir1459785448/
Dir1459786478/
Dir1459788456/
Dir1459789711/
Dir1459789829/
Dir1459789889/
Dir1459790133/
Dir1459790190/
Dir1459790247/
Dir1459792044/
Dir1459792289/
Dir1459795823/
Dir1459796965/
Dir1459798167/
Dir1459798414/
Dir1459799364/
Dir1459800253/
Dir1459800254/
Dir1459800256/
Dir1459800323/
Dir1459801015/
Dir1459801132/
Dir1459801278/
Dir1459801390/
Dir1459801465/
Dir1459801498/
Dir1459801541/
Dir1459801615/
Dir1459801725/
Dir1459801779/
Dir1459801910/
Dir1459802734/
Dir1459804845/
Dir1459807067/
Dir1459807562/
Dir1459807778/
Dir1459808595/
Dir1459809765/
Dir1459810183/
Dir1459811795/
Dir1459820011/
Dir1459820012/
Dir1459821311/
Dir1459824198/
Dir1459825512/
Dir1459827499/
Dir1459827620/
Dir1459828217/
Dir1459828337/
Dir1459830250/
Dir1459830432/
Dir1459830556/
Dir1459830612/
Dir1459830665/
Dir1459830856/
Dir1459831266/
Dir1459836959/
Dir1459838057/
Dir1459843214/
Dir1459844108/
Dir1459844225/
Dir1459845309/
Dir1459849218/
Dir1459849337/
Dir1459849820/
Dir1459856533/
Dir1459861089/
Dir1459866563/
Dir1459868116/
Dir1459868229/
Dir1459869621/
Dir1459870394/
Dir1459871771/
Dir1459879033/
Dir1459879223/
Dir1459880113/
Dir1459880168/
Dir1459880286/
Dir1459881315/
Dir1459881919/
Dir1459882326/
Dir1459883711/
Dir1459886353/
Dir1459886416/
Dir1459887191/
Dir1459887312/
Dir1459887376/
Dir1459888929/
Dir1459889834/
Dir1459891869/
Dir1459892118/
Dir1459892179/
Dir1459892957/
Dir1459894275/
Dir1459894337/
Dir1459895226/
Dir1459896078/
Dir1459897880/
Dir1459899487/
Dir1459899613/
Dir1459900866/
Dir1459903751/
Dir1459905076/
Dir1459912929/
Dir1459913614/
Dir1459914500/
Dir1459915871/
Dir1459917628/
Dir1459924040/
Dir1459925466/
Dir1459926435/
Dir1459926676/
Dir1459927697/
Dir1459929306/
Dir1459931597/
Dir1459932554/
Dir1459934890/
Dir1459935625/
Dir1459937239/
Dir1459937288/
Dir1459938611/
Dir1459940952/
Dir1459942276/
Dir1459943836/
Dir1459944140/
Dir1459949047/
Dir1459949647/
Dir1459950493/
Dir1459951394/
Dir1459951767/
Dir1459952300/
Dir1459953442/
Dir1459956493/
Dir1459958653/
Dir1459959070/
Dir1459959616/
Dir1459960027/
Dir1459960211/
Dir1459963340/
Dir1459963928/
Dir1459969986/
Dir1459970359/
Dir1459971071/
Dir1459971650/
Dir1459971851/
Dir1459973420/
Dir1459974475/
Dir1459975784/
Dir1459977290/
Dir1459977708/
Dir1459978966/
Dir1459979925/
Dir1459982383/
Dir1459984734/
Dir1459986773/
Dir1459987915/
Dir1459988028/
Dir1459991657/
Dir1459993190/
Dir1459993493/
Dir1459997631/
Dir1459997992/
Dir1460009865/
Dir1460012142/
Dir1460013302/
Dir1460014195/
Dir1460014914/
Dir1460015212/
Dir1460017565/
Dir1460017729/
Dir1460017970/
Dir1460018630/
Dir1460018870/
Dir1460019835/
Dir1460022109/
Dir1460023043/
Dir1460023491/
Dir1460026185/
Dir1460028352/
Dir1460028582/
Dir1460029195/
Dir1460029196/
Dir1460029198/
Dir1460029199/
Dir1460029200/
Dir1460029202/
Dir1460029206/
Dir1460029207/
Dir1460029210/
Dir1460029211/
Dir1460029213/
Dir1460029218/
Dir1460029221/
Dir1460029222/
Dir1460029223/
Dir1460029224/
Dir1460029225/
Dir1460029228/
Dir1460029229/
Dir1460029232/
Dir1460029234/
Dir1460029236/
Dir1460029279/
Dir1460029281/
Dir1460029287/
Dir1460029288/
Dir1460029291/
Dir1460029297/
Dir1460029298/
Dir1460029299/
Dir1460029300/
Dir1460029311/
Dir1460029312/
Dir1460029318/
Dir1460029320/
Dir1460029321/
Dir1460029615/
Dir1460030685/
Dir1460031537/
Dir1460032604/
Dir1460034225/
Dir1460034830/
Dir1460035850/
Dir1460035975/
Dir1460036747/
Dir1460036880/
Dir1460036970/
Dir1460037050/
Dir1460043217/
Dir1460044513/
Dir1460044980/
Dir1460044982/
Dir1460044986/
Dir1460044988/
Dir1460044989/
Dir1460044996/
Dir1460045001/
Dir1460045005/
Dir1460047913/
Dir1460054333/
Dir1460054334/
Dir1460054335/
Dir1460054340/
Dir1460054343/
Dir1460054346/
Dir1460054347/
Dir1460054348/
Dir1460054349/
Dir1460054372/
Dir1460054374/
Dir1460054375/
Dir1460055533/
Dir1460056552/
Dir1460061541/
Dir1460062192/
Dir1460062999/
Dir1460064010/
Dir1460065621/
Dir1460065751/
Dir1460066641/
Dir1460066966/
Dir1460071321/
Dir1460071396/
Dir1460071478/
Dir1460071847/
Dir1460074598/
Dir1460078137/
Dir1460079253/
Dir1460080787/
Dir1460080844/
Dir1460083424/
Dir1460084148/
Dir1460088646/
Dir1460096079/
Dir1460101362/
Dir1460102925/
Dir1460105500/
Dir1460106947/
Dir1460108627/
Dir1460109240/
Dir1460110918/
Dir1460111219/
Dir1460112239/
Dir1460115540/
Dir1460118418/
Dir1460118966/
Dir1460119205/
Dir1460119679/
Dir1460121238/
Dir1460123519/
Dir1460125741/
Dir1460126177/
Dir1460126639/
Dir1460127248/
Dir1460128318/
Dir1460130233/
Dir1460133418/
Dir1460134079/
Dir1460134799/
Dir1460136956/
Dir1460141766/
Dir1460142775/
Dir1460142989/
Dir1460142992/
Dir1460143988/
Dir1460145153/
Dir1460145193/
Dir1460145204/
Dir1460146446/
Dir1460148025/
Dir1460148366/
Dir1460148367/
Dir1460148369/
Dir1460148371/
Dir1460148372/
Dir1460148373/
Dir1460148375/
Dir1460148390/
Dir1460148391/
Dir1460148394/
Dir1460148426/
Dir1460148427/
Dir1460148428/
Dir1460148429/
Dir1460148437/
Dir1460148438/
Dir1460148440/
Dir1460148448/
Dir1460148449/
Dir1460148451/
Dir1460148453/
Dir1460148454/
Dir1460148455/
Dir1460148457/
Dir1460149808/
Dir1460150580/
Dir1460152136/
Dir1460153630/
Dir1460154349/
Dir1460154770/
Dir1460155426/
Dir1460156685/
Dir1460156805/
Dir1460157015/
Dir1460158250/
Dir1460159295/
Dir1460159712/
Dir1460161780/
Dir1460165218/
Dir1460171750/
Dir1460206305/
Dir1460209916/
Dir1460211035/
Dir1460211881/
Dir1460225448/
Dir1460225915/
Dir1460228685/
Dir1460229824/
Dir1460230717/
Dir1460231075/
Dir1460231959/
Dir1460233906/
Dir1460256610/
Dir1460258057/
Dir1460258175/
Dir1460263626/
Dir1460319731/
Dir1460320204/
Dir1460320566/
Dir1460322975/
Dir1460327597/
Dir1460328915/
Dir1460334192/
Dir1460335152/
Dir1460336114/
Dir1460339832/
Dir1460339892/
Dir1460340554/
Dir1460343124/
Dir1460349966/
Dir1460353872/
Dir1460354286/
Dir1460355919/
Dir1460360719/
Dir1460360895/
Dir1460363056/
Dir1460366053/
Dir1460367130/
Dir1460367854/
Dir1460368086/
Dir1460370981/
Dir1460371578/
Dir1460373196/
Dir1460380384/
Dir1460380567/
Dir1460381896/
Dir1460382557/
Dir1460382856/
Dir1460383336/
Dir1460385681/
Dir1460385852/
Dir1460386873/
Dir1460387350/
Dir1460387839/
Dir1460388081/
Dir1460390364/
Dir1460390590/
Dir1460390954/
Dir1460391435/
Dir1460391555/
Dir1460391918/
Dir1460393121/
Dir1460393651/
Dir1460393778/
Dir1460394019/
Dir1460395272/
Dir1460395571/
Dir1460396704/
Dir1460398956/
Dir1460398958/
Dir1460399156/
Dir1460399662/
Dir1460399920/
Dir1460400150/
Dir1460401189/
Dir1460401832/
Dir1460401963/
Dir1460403921/
Dir1460404365/
Dir1460408754/
Dir1460409654/
Dir1460410658/
Dir1460412175/
Dir1460412920/
Dir1460413075/
Dir1460413488/
Dir1460414631/
Dir1460415955/
Dir1460418105/
Dir1460418232/
Dir1460418770/
Dir1460425007/
Dir1460425244/
Dir1460426036/
Dir1460427472/
Dir1460430112/
Dir1460430524/
Dir1460430767/
Dir1460431248/
Dir1460431551/
Dir1460432096/
Dir1460434069/
Dir1460434557/
Dir1460438814/
Dir1460438984/
Dir1460440431/
Dir1460441267/
Dir1460441385/
Dir1460442892/
Dir1460446250/
Dir1460447030/
Dir1460450094/
Dir1460450400/
Dir1460450689/
Dir1460450813/
Dir1460452544/
Dir1460455973/
Dir1460457533/
Dir1460459206/
Dir1460462035/
Dir1460464909/
Dir1460465574/
Dir1460466712/
Dir1460466948/
Dir1460468457/
Dir1460469591/
Dir1460470123/
Dir1460470548/
Dir1460470735/
Dir1460470736/
Dir1460470850/
Dir1460471215/
Dir1460472945/
Dir1460474529/
Dir1460476618/
Dir1460477214/
Dir1460477692/
Dir1460479604/
Dir1460481476/
Dir1460481648/
Dir1460482733/
Dir1460485193/
Dir1460486036/
Dir1460488556/
Dir1460488967/
Dir1460489564/
Dir1460490587/
Dir1460491791/
Dir1460492210/
Dir1460492267/
Dir1460492867/
Dir1460493528/
Dir1460494123/
Dir1460494369/
Dir1460495564/
Dir1460495983/
Dir1460497208/
Dir1460498152/
Dir1460498153/
Dir1460498333/
Dir1460498766/
Dir1460499468/
Dir1460500614/
Dir1460500845/
Dir1460505054/
Dir1460506969/
Dir1460507206/
Dir1460509785/
Dir1460509907/
Dir1460510749/
Dir1460511890/
Dir1460516267/
Dir1460521072/
Dir1460521906/
Dir1460526170/
Dir1460530247/
Dir1460530664/
Dir1460532893/
Dir1460534212/
Dir1460535165/
Dir1460536727/
Dir1460537687/
Dir1460538888/
Dir1460539014/
Dir1460541357/
Dir1460542074/
Dir1460544047/
Dir1460544406/
Dir1460546207/
Dir1460547950/
Dir1460548386/
Dir1460548390/
Dir1460548394/
Dir1460548396/
Dir1460548618/
Dir1460548619/
Dir1460548620/
Dir1460548621/
Dir1460548622/
Dir1460548774/
Dir1460548775/
Dir1460548776/
Dir1460548778/
Dir1460548779/
Dir1460548782/
Dir1460550114/
Dir1460550895/
Dir1460551904/
Dir1460552096/
Dir1460552756/
Dir1460552987/
Dir1460553165/
Dir1460554401/
Dir1460554402/
Dir1460554403/
Dir1460554404/
Dir1460554407/
Dir1460554408/
Dir1460554409/
Dir1460554410/
Dir1460554420/
Dir1460554421/
Dir1460554422/
Dir1460554424/
Dir1460554427/
Dir1460554428/
Dir1460554446/
Dir1460554447/
Dir1460554449/
Dir1460554499/
Dir1460554500/
Dir1460554501/
Dir1460554505/
Dir1460554506/
Dir1460554507/
Dir1460554508/
Dir1460554513/
Dir1460554514/
Dir1460554515/
Dir1460554516/
Dir1460554520/
Dir1460554521/
Dir1460554522/
Dir1460554524/
Dir1460554529/
Dir1460554530/
Dir1460554531/
Dir1460554533/
Dir1460554534/
Dir1460554536/
Dir1460554537/
Dir1460554538/
Dir1460554539/
Dir1460554542/
Dir1460554543/
Dir1460554544/
Dir1460554545/
Dir1460554885/
Dir1460554904/
Dir1460555157/
Dir1460555452/
Dir1460556396/
Dir1460556592/
Dir1460557378/
Dir1460557956/
Dir1460559409/
Dir1460561023/
Dir1460562460/
Dir1460567861/
Dir1460568821/
Dir1460570144/
Dir1460571470/
Dir1460572484/
Dir1460573146/
Dir1460579683/
Dir1460579988/
Dir1460581841/
Dir1460582022/
Dir1460582319/
Dir1460583287/
Dir1460583476/
Dir1460584604/
Dir1460585451/
Dir1460585748/
Dir1460586520/
Dir1460586702/
Dir1460587002/
Dir1460587250/
Dir1460587600/
Dir1460590127/
Dir1460590314/
Dir1460590362/
Dir1460591803/
Dir1460591869/
Dir1460592643/
Dir1460600858/
Dir1460600986/
Dir1460606269/
Dir1460607828/
Dir1460609449/
Dir1460609571/
Dir1460613880/
Dir1460614839/
Dir1460615089/
Dir1460617120/
Dir1460617515/
Dir1460619402/
Dir1460619762/
Dir1460621629/
Dir1460623846/
Dir1460625703/
Dir1460627084/
Dir1460627507/
Dir1460628374/
Dir1460630395/
Dir1460634051/
Dir1460634471/
Dir1460636203/
Dir1460643222/
Dir1460645138/
Dir1460646945/
Dir1460648025/
Dir1460648151/
Dir1460648742/
Dir1460649228/
Dir1460649287/
Dir1460650246/
Dir1460651042/
Dir1460653368/
Dir1460655283/
Dir1460655476/
Dir1460655698/
Dir1460656000/
Dir1460657183/
Dir1460657184/
Dir1460659120/
Dir1460660084/
Dir1460660505/
Dir1460662069/
Dir1460662487/
Dir1460663441/
Dir1460664710/
Dir1460665242/
Dir1460665300/
Dir1460666269/
Dir1460666869/
Dir1460667041/
Dir1460670948/
Dir1460672321/
Dir1460675741/
Dir1460675927/
Dir1460677609/
Dir1460681259/
Dir1460681678/
Dir1460689059/
Dir1460689306/
Dir1460689544/
Dir1460689798/
Dir1460691114/
Dir1460691459/
Dir1460692373/
Dir1460693143/
Dir1460693988/
Dir1460695149/
Dir1460695543/
Dir1460695730/
Dir1460700642/
Dir1460701671/
Dir1460701966/
Dir1460704073/
Dir1460705454/
Dir1460711499/
Dir1460711989/
Dir1460712411/
Dir1460714629/
Dir1460715170/
Dir1460716839/
Dir1460718764/
Dir1460719738/
Dir1460721461/
Dir1460721588/
Dir1460723536/
Dir1460723554/
Dir1460723555/
Dir1460726146/
Dir1460726328/
Dir1460727711/
Dir1460729424/
Dir1460729764/
Dir1460729918/
Dir1460730000/
Dir1460730017/
Dir1460731733/
Dir1460734122/
Dir1460737121/
Dir1460738750/
Dir1460739224/
Dir1460743850/
Dir1460746839/
Dir1460747208/
Dir1460748882/
Dir1460752647/
Dir1460757255/
Dir1460758461/
Dir1460758944/
Dir1460760017/
Dir1460760641/
Dir1460761095/
Dir1460763314/
Dir1460763615/
Dir1460764165/
Dir1460765901/
Dir1460766076/
Dir1460771361/
Dir1460772365/
Dir1460775991/
Dir1460776346/
Dir1460790320/
Dir1460798657/
Dir1460802202/
Dir1460811759/
Dir1460823438/
Dir1460824345/
Dir1460828959/
Dir1460864844/
Dir1460865142/
Dir1460897846/
Dir1460903062/
Dir1460907501/
Dir1460911047/
Dir1460929635/
Dir1460930478/
Dir1460938038/
Dir1460938698/
Dir1460959215/
Dir1460962340/
Dir1460964140/
Dir1460964861/
Dir1460966558/
Dir1460966775/
Dir1460966971/
Dir1460968104/
Dir1460968878/
Dir1460969126/
Dir1460970559/
Dir1460970903/
Dir1460971225/
Dir1460971760/
Dir1460975189/
Dir1460978115/
Dir1460978183/
Dir1460982198/
Dir1460982498/
Dir1460982801/
Dir1460983398/
Dir1460984803/
Dir1460985874/
Dir1460988978/
Dir1460990302/
Dir1460991382/
Dir1460992650/
Dir1460993136/
Dir1460993313/
Dir1460997031/
Dir1460997222/
Dir1460998230/
Dir1460999565/
Dir1461000225/
Dir1461001255/
Dir1461002926/
Dir1461003405/
Dir1461003470/
Dir1461005383/
Dir1461006170/
Dir1461008695/
Dir1461009992/
Dir1461010669/
Dir1461012982/
Dir1461013107/
Dir1461013953/
Dir1461013954/
Dir1461014487/
Dir1461014540/
Dir1461014603/
Dir1461014782/
Dir1461015260/
Dir1461016894/
Dir1461017723/
Dir1461020425/
Dir1461021687/
Dir1461021872/
Dir1461024381/
Dir1461032840/
Dir1461033202/
Dir1461034346/
Dir1461034835/
Dir1461035606/
Dir1461035660/
Dir1461035962/
Dir1461044998/
Dir1461044999/
Dir1461045001/
Dir1461046311/
Dir1461051480/
Dir1461051582/
Dir1461052969/
Dir1461057043/
Dir1461058123/
Dir1461058185/
Dir1461058314/
Dir1461058603/
Dir1461059203/
Dir1461059265/
Dir1461059336/
Dir1461060109/
Dir1461060523/
Dir1461060524/
Dir1461062212/
Dir1461063408/
Dir1461065148/
Dir1461065273/
Dir1461067548/
Dir1461067852/
Dir1461068508/
Dir1461068868/
Dir1461070370/
Dir1461071742/
Dir1461074151/
Dir1461074392/
Dir1461075395/
Dir1461075822/
Dir1461076001/
Dir1461076060/
Dir1461076115/
Dir1461077198/
Dir1461077434/
Dir1461079510/
Dir1461079511/
Dir1461080313/
Dir1461081171/
Dir1461082358/
Dir1461082474/
Dir1461085123/
Dir1461086860/
Dir1461090161/
Dir1461091177/
Dir1461091897/
Dir1461093572/
Dir1461096823/
Dir1461098023/
Dir1461100120/
Dir1461100661/
Dir1461101617/
Dir1461104795/
Dir1461106176/
Dir1461106416/
Dir1461107432/
Dir1461107974/
Dir1461108211/
Dir1461108277/
Dir1461108877/
Dir1461110017/
Dir1461111693/
Dir1461111937/
Dir1461114267/
Dir1461114585/
Dir1461118904/
Dir1461124178/
Dir1461124419/
Dir1461124594/
Dir1461128432/
Dir1461129049/
Dir1461133722/
Dir1461135456/
Dir1461136291/
Dir1461136358/
Dir1461138349/
Dir1461139054/
Dir1461142355/
Dir1461142903/
Dir1461143265/
Dir1461143320/
Dir1461144639/
Dir1461145233/
Dir1461145776/
Dir1461145968/
Dir1461146260/
Dir1461147224/
Dir1461148899/
Dir1461151122/
Dir1461153460/
Dir1461154500/
Dir1461156511/
Dir1461157292/
Dir1461159394/
Dir1461159698/
Dir1461161313/
Dir1461161317/
Dir1461161918/
Dir1461162522/
Dir1461162858/
Dir1461165703/
Dir1461166965/
Dir1461167621/
Dir1461170504/
Dir1461170623/
Dir1461172249/
Dir1461172672/
Dir1461173562/
Dir1461173924/
Dir1461174341/
Dir1461174828/
Dir1461176385/
Dir1461176566/
Dir1461177888/
Dir1461178901/
Dir1461179260/
Dir1461180464/
Dir1461181008/
Dir1461184849/
Dir1461185622/
Dir1461186423/
Dir1461187205/
Dir1461188099/
Dir1461189066/
Dir1461189429/
Dir1461189545/
Dir1461190024/
Dir1461192119/
Dir1461192370/
Dir1461196020/
Dir1461196201/
Dir1461196262/
Dir1461200766/
Dir1461203645/
Dir1461206463/
Dir1461206590/
Dir1461211086/
Dir1461212828/
Dir1461213190/
Dir1461214505/
Dir1461217124/
Dir1461217441/
Dir1461217996/
Dir1461219423/
Dir1461224104/
Dir1461226382/
Dir1461226981/
Dir1461230707/
Dir1461231428/
Dir1461233218/
Dir1461233298/
Dir1461234240/
Dir1461238802/
Dir1461238989/
Dir1461239109/
Dir1461240549/
Dir1461245081/
Dir1461246083/
Dir1461247028/
Dir1461247934/
Dir1461248345/
Dir1461249445/
Dir1461250829/
Dir1461251776/
Dir1461252490/
Dir1461252799/
Dir1461252833/
Dir1461252973/
Dir1461253380/
Dir1461253572/
Dir1461253828/
Dir1461253889/
Dir1461255193/
Dir1461257291/
Dir1461257926/
Dir1461258000/
Dir1461258402/
Dir1461259986/
Dir1461260100/
Dir1461260590/
Dir1461261243/
Dir1461261617/
Dir1461262394/
Dir1461263948/
Dir1461264241/
Dir1461265984/
Dir1461266882/
Dir1461267243/
Dir1461268213/
Dir1461269185/
Dir1461272165/
Dir1461272227/
Dir1461272656/
Dir1461273313/
Dir1461276377/
Dir1461276378/
Dir1461277449/
Dir1461277511/
Dir1461278527/
Dir1461280210/
Dir1461280932/
Dir1461281524/
Dir1461283564/
Dir1461285366/
Dir1461285548/
Dir1461285902/
Dir1461289115/
Dir1461289632/
Dir1461290781/
Dir1461292082/
Dir1461296586/
Dir1461297435/
Dir1461297436/
Dir1461297904/
Dir1461300429/
Dir1461301485/
Dir1461302284/
Dir1461304506/
Dir1461304684/
Dir1461308219/
Dir1461309243/
Dir1461309802/
Dir1461310510/
Dir1461310511/
Dir1461315883/
Dir1461316035/
Dir1461316931/
Dir1461317804/
Dir1461317805/
Dir1461317806/
Dir1461317808/
Dir1461317809/
Dir1461317814/
Dir1461317815/
Dir1461317816/
Dir1461317817/
Dir1461317818/
Dir1461317821/
Dir1461317825/
Dir1461317826/
Dir1461317840/
Dir1461317841/
Dir1461317842/
Dir1461317843/
Dir1461317844/
Dir1461318088/
Dir1461318089/
Dir1461318090/
Dir1461318091/
Dir1461318094/
Dir1461318100/
Dir1461318101/
Dir1461318102/
Dir1461318103/
Dir1461318106/
Dir1461318107/
Dir1461318108/
Dir1461318109/
Dir1461318111/
Dir1461318125/
Dir1461318126/
Dir1461318127/
Dir1461318128/
Dir1461318129/
Dir1461318371/
Dir1461318372/
Dir1461318374/
Dir1461318382/
Dir1461318383/
Dir1461318386/
Dir1461318388/
Dir1461318389/
Dir1461318391/
Dir1461318407/
Dir1461318408/
Dir1461318409/
Dir1461318410/
Dir1461318415/
Dir1461318694/
Dir1461318695/
Dir1461318696/
Dir1461318699/
Dir1461318706/
Dir1461318708/
Dir1461318709/
Dir1461322440/
Dir1461325259/
Dir1461327848/
Dir1461328324/
Dir1461329286/
Dir1461330570/
Dir1461332339/
Dir1461333192/
Dir1461333244/
Dir1461333543/
Dir1461334163/
Dir1461335226/
Dir1461335887/
Dir1461337631/
Dir1461338464/
Dir1461338644/
Dir1461338707/
Dir1461339305/
Dir1461343505/
Dir1461343680/
Dir1461343748/
Dir1461343749/
Dir1461343862/
Dir1461343922/
Dir1461343923/
Dir1461343981/
Dir1461344112/
Dir1461344284/
Dir1461344343/
Dir1461344807/
Dir1461345547/
Dir1461347022/
Dir1461348454/
Dir1461348692/
Dir1461349849/
Dir1461350069/
Dir1461354830/
Dir1461355308/
Dir1461355452/
Dir1461355579/
Dir1461356082/
Dir1461359807/
Dir1461362452/
Dir1461365453/
Dir1461366895/
Dir1461369532/
Dir1461370730/
Dir1461385912/
Dir1461390065/
Dir1461401574/
Dir1461401802/
Dir1461403788/
Dir1461404082/
Dir1461404153/
Dir1461404154/
Dir1461404155/
Dir1461405414/
Dir1461406906/
Dir1461407027/
Dir1461407028/
Dir1461407116/
Dir1461407151/
Dir1461407189/
Dir1461407190/
Dir1461407204/
Dir1461407205/
Dir1461407272/
Dir1461407273/
Dir1461407274/
Dir1461407324/
Dir1461407325/
Dir1461407395/
Dir1461407396/
Dir1461407453/
Dir1461408122/
Dir1461409565/
Dir1461409965/
Dir1461414942/
Dir1461431102/
Dir1461435115/
Dir1461442734/
Dir1461442791/
Dir1461443692/
Dir1461445963/
Dir1461446388/
Dir1461459230/
Dir1461459289/
Dir1461460131/
Dir1461467206/
Dir1461467207/
Dir1461472552/
Dir1461485155/
Dir1461507275/
Dir1461510707/
Dir1461522883/
Dir1461524402/
Dir1461538302/
Dir1461547074/
Dir1461548445/
Dir1461552582/
Dir1461555069/
Dir1461556487/
Dir1461563693/
Dir1461569027/
Dir1461569385/
Dir1461570232/
Dir1461571363/
Dir1461576651/
Dir1461577605/
Dir1461578266/
Dir1461580908/
Dir1461584155/
Dir1461586308/
Dir1461588534/
Dir1461589551/
Dir1461589743/
Dir1461589968/
Dir1461592012/
Dir1461592401/
Dir1461594595/
Dir1461595548/
Dir1461596106/
Dir1461596813/
Dir1461598313/
Dir1461598915/
Dir1461599323/
Dir1461600588/
Dir1461602656/
Dir1461603671/
Dir1461604277/
Dir1461605542/
Dir1461605785/
Dir1461609070/
Dir1461609550/
Dir1461612425/
Dir1461613395/
Dir1461614660/
Dir1461615497/
Dir1461616516/
Dir1461618245/
Dir1461619867/
Dir1461624550/
Dir1461625214/
Dir1461625806/
Dir1461630185/
Dir1461630300/
Dir1461631856/
Dir1461632343/
Dir1461634443/
Dir1461635819/
Dir1461635937/
Dir1461636971/
Dir1461638084/
Dir1461638586/
Dir1461640203/
Dir1461644701/
Dir1461645007/
Dir1461647575/
Dir1461652694/
Dir1461653404/
Dir1461653576/
Dir1461657479/
Dir1461658088/
Dir1461659045/
Dir1461660364/
Dir1461660720/
Dir1461662105/
Dir1461662407/
Dir1461663046/
Dir1461663246/
Dir1461666120/
Dir1461669181/
Dir1461672258/
Dir1461672377/
Dir1461672535/
Dir1461673211/
Dir1461674276/
Dir1461674705/
Dir1461679612/
Dir1461681267/
Dir1461681778/
Dir1461681913/
Dir1461682196/
Dir1461682809/
Dir1461683103/
Dir1461683224/
Dir1461685503/
Dir1461685615/
Dir1461685805/
Dir1461686516/
Dir1461688334/
Dir1461689876/
Dir1461690559/
Dir1461690903/
Dir1461691628/
Dir1461692286/
Dir1461692637/
Dir1461694573/
Dir1461694618/
Dir1461695465/
Dir1461695701/
Dir1461696417/
Dir1461696724/
Dir1461699244/
Dir1461700203/
Dir1461701582/
Dir1461702966/
Dir1461703083/
Dir1461703204/
Dir1461703922/
Dir1461704738/
Dir1461704888/
Dir1461705058/
Dir1461705598/
Dir1461706138/
Dir1461706199/
Dir1461708904/
Dir1461713413/
Dir1461723779/
Dir1461724446/
Dir1461727558/
Dir1461728645/
Dir1461729481/
Dir1461730985/
Dir1461736266/
Dir1461736746/
Dir1461739204/
Dir1461740465/
Dir1461743413/
Dir1461745284/
Dir1461746939/
Dir1461750777/
Dir1461751627/
Dir1461753415/
Dir1461753540/
Dir1461757616/
Dir1461758161/
Dir1461761578/
Dir1461763375/
Dir1461763864/
Dir1461766322/
Dir1461767773/
Dir1461767890/
Dir1461768363/
Dir1461769088/
Dir1461769316/
Dir1461773131/
Dir1461773266/
Dir1461773399/
Dir1461775020/
Dir1461775330/
Dir1461775688/
Dir1461775885/
Dir1461776239/
Dir1461776398/
Dir1461776827/
Dir1461777601/
Dir1461778087/
Dir1461780591/
Dir1461781786/
Dir1461783120/
Dir1461785510/
Dir1461785569/
Dir1461788096/
Dir1461790619/
Dir1461791808/
Dir1461791930/
Dir1461792231/
Dir1461792647/
Dir1461797512/
Dir1461799376/
Dir1461800688/
Dir1461802018/
Dir1461811253/
Dir1461811427/
Dir1461811793/
Dir1461813958/
Dir1461820007/
Dir1461820132/
Dir1461822534/
Dir1461823134/
Dir1461825534/
Dir1461826015/
Dir1461827465/
Dir1461828048/
Dir1461831420/
Dir1461831655/
Dir1461832131/
Dir1461832248/
Dir1461832442/
Dir1461832498/
Dir1461833932/
Dir1461834266/
Dir1461834955/
Dir1461835370/
Dir1461836290/
Dir1461838136/
Dir1461838192/
Dir1461840892/
Dir1461841257/
Dir1461843595/
Dir1461844653/
Dir1461844795/
Dir1461845183/
Dir1461849835/
Dir1461850246/
Dir1461852168/
Dir1461854434/
Dir1461854435/
Dir1461854568/
Dir1461854994/
Dir1461857627/
Dir1461859319/
Dir1461859933/
Dir1461861721/
Dir1461862259/
Dir1461862918/
Dir1461863647/
Dir1461864181/
Dir1461865802/
Dir1461871310/
Dir1461872507/
Dir1461872697/
Dir1461874062/
Dir1461874246/
Dir1461874789/
Dir1461875146/
Dir1461875205/
Dir1461876287/
Dir1461877566/
Dir1461877791/
Dir1461879881/
Dir1461880246/
Dir1461881747/
Dir1461882293/
Dir1461883613/
Dir1461886130/
Dir1461886133/
Dir1461886138/
Dir1461886191/
Dir1461886192/
Dir1461886194/
Dir1461886543/
Dir1461887564/
Dir1461891839/
Dir1461894601/
Dir1461898603/
Dir1461899301/
Dir1461899639/
Dir1461899930/
Dir1461903705/
Dir1461906112/
Dir1461909281/
Dir1461910303/
Dir1461910544/
Dir1461911151/
Dir1461916730/
Dir1461917690/
Dir1461921949/
Dir1461923321/
Dir1461927530/
Dir1461929990/
Dir1461931246/
Dir1461931553/
Dir1461931670/
Dir1461932813/
Dir1461934304/
Dir1461935204/
Dir1461935501/
Dir1461935863/
Dir1461939897/
Dir1461942282/
Dir1461945412/
Dir1461945521/
Dir1461945970/
Dir1461945971/
Dir1461949354/
Dir1461949779/
Dir1461950015/
Dir1461950077/
Dir1461950628/
Dir1461951575/
Dir1461952661/
Dir1461953620/
Dir1461955360/
Dir1461958961/
Dir1461959431/
Dir1461962016/
Dir1461962373/
Dir1461964230/
Dir1461964542/
Dir1461966510/
Dir1461967293/
Dir1461967471/
Dir1461967780/
Dir1461967891/
Dir1461968796/
Dir1461969400/
Dir1461970411/
Dir1461970907/
Dir1461972518/
Dir1461974433/
Dir1461974665/
Dir1461975814/
Dir1461978357/
Dir1461978522/
Dir1461982951/
Dir1461985666/
Dir1461986136/
Dir1461991838/
Dir1462002939/
Dir1462005815/
Dir1462009649/
Dir1462019141/
Dir1462029100/
Dir1462055982/
Dir1462085013/
Dir1462104932/
Dir1462108238/
Dir1462108239/
Dir1462108290/
Dir1462108291/
Dir1462108292/
Dir1462108293/
Dir1462108294/
Dir1462108356/
Dir1462108357/
Dir1462108358/
Dir1462108359/
Dir1462108360/
Dir1462108409/
Dir1462108410/
Dir1462108411/
Dir1462108412/
Dir1462108413/
Dir1462108476/
Dir1462108477/
Dir1462108478/
Dir1462108479/
Dir1462108480/
Dir1462108530/
Dir1462108531/
Dir1462108532/
Dir1462108533/
Dir1462108534/
Dir1462108596/
Dir1462108597/
Dir1462108598/
Dir1462108599/
Dir1462108600/
Dir1462108661/
Dir1462108662/
Dir1462108663/
Dir1462108664/
Dir1462108665/
Dir1462108715/
Dir1462108716/
Dir1462108717/
Dir1462108718/
Dir1462112937/
Dir1462113150/
Dir1462114721/
Dir1462114722/
Dir1462114723/
Dir1462114724/
Dir1462114790/
Dir1462114825/
Dir1462114826/
Dir1462124016/
Dir1462127381/
Dir1462143449/
Dir1462143940/
Dir1462149031/
Dir1462151913/
Dir1462153293/
Dir1462154189/
Dir1462158509/
Dir1462160554/
Dir1462160677/
Dir1462161454/
Dir1462164518/
Dir1462169199/
Dir1462171126/
Dir1462172865/
Dir1462173157/
Dir1462173391/
Dir1462177537/
Dir1462182038/
Dir1462191030/
Dir1462198036/
Dir1462198596/
Dir1462199678/
Dir1462203632/
Dir1462203751/
Dir1462205439/
Dir1462205448/
Dir1462205612/
Dir1462205960/
Dir1462208193/
Dir1462210110/
Dir1462210495/
Dir1462211024/
Dir1462211800/
Dir1462211979/
Dir1462213454/
Dir1462213722/
Dir1462214442/
Dir1462215291/
Dir1462216254/
Dir1462216255/
Dir1462216309/
Dir1462217206/
Dir1462218462/
Dir1462219032/
Dir1462220613/
Dir1462221032/
Dir1462222782/
Dir1462224292/
Dir1462225311/
Dir1462227342/
Dir1462228663/
Dir1462230799/
Dir1462232904/
Dir1462234960/
Dir1462235261/
Dir1462235379/
Dir1462239040/
Dir1462242967/
Dir1462244026/
Dir1462246727/
Dir1462247320/
Dir1462249621/
Dir1462249726/
Dir1462249776/
Dir1462250085/
Dir1462253018/
Dir1462253516/
Dir1462257100/
Dir1462258360/
Dir1462259269/
Dir1462259503/
Dir1462262434/
Dir1462263641/
Dir1462263642/
Dir1462263762/
Dir1462264721/
Dir1462264907/
Dir1462265322/
Dir1462265564/
Dir1462266263/
Dir1462266822/
Dir1462267957/
Dir1462268135/
Dir1462269231/
Dir1462269957/
Dir1462270065/
Dir1462270475/
Dir1462270703/
Dir1462271105/
Dir1462271375/
Dir1462273002/
Dir1462274138/
Dir1462275038/
Dir1462275056/
Dir1462278101/
Dir1462279069/
Dir1462280667/
Dir1462281278/
Dir1462281418/
Dir1462281462/
Dir1462283330/
Dir1462284411/
Dir1462285185/
Dir1462286075/
Dir1462286533/
Dir1462287528/
Dir1462288656/
Dir1462291067/
Dir1462291717/
Dir1462293053/
Dir1462293997/
Dir1462294128/
Dir1462295747/
Dir1462296281/
Dir1462296409/
Dir1462296538/
Dir1462296723/
Dir1462301506/
Dir1462301868/
Dir1462303490/
Dir1462305403/
Dir1462305950/
Dir1462306908/
Dir1462306909/
Dir1462307318/
Dir1462307454/
Dir1462307919/
Dir1462307988/
Dir1462309460/
Dir1462310395/
Dir1462310481/
Dir1462311095/
Dir1462311340/
Dir1462313858/
Dir1462315122/
Dir1462316261/
Dir1462316646/
Dir1462318225/
Dir1462321716/
Dir1462321898/
Dir1462322319/
Dir1462322497/
Dir1462323525/
Dir1462323701/
Dir1462328775/
Dir1462329386/
Dir1462337388/
Dir1462338706/
Dir1462338824/
Dir1462338877/
Dir1462339357/
Dir1462339916/
Dir1462340323/
Dir1462340506/
Dir1462341964/
Dir1462342907/
Dir1462346021/
Dir1462347224/
Dir1462347522/
Dir1462347996/
Dir1462348658/
Dir1462349801/
Dir1462350587/
Dir1462350624/
Dir1462351485/
Dir1462353048/
Dir1462354957/
Dir1462355985/
Dir1462358921/
Dir1462361972/
Dir1462361973/
Dir1462362952/
Dir1462366969/
Dir1462368048/
Dir1462368247/
Dir1462371056/
Dir1462373983/
Dir1462376086/
Dir1462376738/
Dir1462377095/
Dir1462377521/
Dir1462377842/
Dir1462378128/
Dir1462378479/
Dir1462379617/
Dir1462380396/
Dir1462381185/
Dir1462381300/
Dir1462383079/
Dir1462383168/
Dir1462384009/
Dir1462384303/
Dir1462384662/
Dir1462384865/
Dir1462385077/
Dir1462386220/
Dir1462387296/
Dir1462393885/
Dir1462394031/
Dir1462396418/
Dir1462396485/
Dir1462397082/
Dir1462398157/
Dir1462398583/
Dir1462398584/
Dir1462399847/
Dir1462401336/
Dir1462402545/
Dir1462404630/
Dir1462406198/
Dir1462407458/
Dir1462408965/
Dir1462410401/
Dir1462415700/
Dir1462415813/
Dir1462416284/
Dir1462417692/
Dir1462417913/
Dir1462418920/
Dir1462419822/
Dir1462420055/
Dir1462424561/
Dir1462425695/
Dir1462425822/
Dir1462426066/
Dir1462429914/
Dir1462434852/
Dir1462434853/
Dir1462434854/
Dir1462434859/
Dir1462434860/
Dir1462434861/
Dir1462434862/
Dir1462434866/
Dir1462434869/
Dir1462434871/
Dir1462434872/
Dir1462434875/
Dir1462434877/
Dir1462434878/
Dir1462434881/
Dir1462434883/
Dir1462434884/
Dir1462434885/
Dir1462434889/
Dir1462434890/
Dir1462434891/
Dir1462434892/
Dir1462434893/
Dir1462434896/
Dir1462434897/
Dir1462434899/
Dir1462434900/
Dir1462439866/
Dir1462440891/
Dir1462442324/
Dir1462442573/
Dir1462443586/
Dir1462445208/
Dir1462447814/
Dir1462448393/
Dir1462449758/
Dir1462449982/
Dir1462457395/
Dir1462457396/
Dir1462459183/
Dir1462459299/
Dir1462459366/
Dir1462459659/
Dir1462460440/
Dir1462460912/
Dir1462463312/
Dir1462465906/
Dir1462465969/
Dir1462466394/
Dir1462466799/
Dir1462466868/
Dir1462466987/
Dir1462466988/
Dir1462468915/
Dir1462469390/
Dir1462469690/
Dir1462470706/
Dir1462471002/
Dir1462472989/
Dir1462473342/
Dir1462473822/
Dir1462477610/
Dir1462478500/
Dir1462478862/
Dir1462479039/
Dir1462479279/
Dir1462480546/
Dir1462480667/
Dir1462481686/
Dir1462483260/
Dir1462486362/
Dir1462487862/
Dir1462488887/
Dir1462490800/
Dir1462493453/
Dir1462499902/
Dir1462501042/
Dir1462501583/
Dir1462501758/
Dir1462502712/
Dir1462503995/
Dir1462504167/
Dir1462505125/
Dir1462506442/
Dir1462509329/
Dir1462510646/
Dir1462518623/
Dir1462519395/
Dir1462519641/
Dir1462519939/
Dir1462520443/
Dir1462526263/
Dir1462529078/
Dir1462530504/
Dir1462536343/
Dir1462537992/
Dir1462537993/
Dir1462539872/
Dir1462540460/
Dir1462542741/
Dir1462545674/
Dir1462546277/
Dir1462547484/
Dir1462549216/
Dir1462551155/
Dir1462553722/
Dir1462555231/
Dir1462555913/
Dir1462556262/
Dir1462557284/
Dir1462557883/
Dir1462558611/
Dir1462560162/
Dir1462561061/
Dir1462561980/
Dir1462562332/
Dir1462563240/
Dir1462563298/
Dir1462563538/
Dir1462564190/
Dir1462564260/
Dir1462564581/
Dir1462564613/
Dir1462565079/
Dir1462565192/
Dir1462565390/
Dir1462565460/
Dir1462567490/
Dir1462567623/
Dir1462568280/
Dir1462569718/
Dir1462570674/
Dir1462572775/
Dir1462575120/
Dir1462575543/
Dir1462576310/
Dir1462576666/
Dir1462578890/
Dir1462580390/
Dir1462583057/
Dir1462584772/
Dir1462586793/
Dir1462587102/
Dir1462596947/
Dir1462600247/
Dir1462602285/
Dir1462608408/
Dir1462612660/
Dir1462623710/
Dir1462638114/
Dir1462654554/
Dir1462673624/
Dir1462693497/
Dir1462694267/
Dir1462696488/
Dir1462702732/
Dir1462708008/
Dir1462714017/
Dir1462718515/
Dir1462732315/
Dir1462757440/
Dir1462759129/
Dir1462761284/
Dir1462762846/
Dir1462765007/
Dir1462771059/
Dir1462771604/
Dir1462772389/
Dir1462775086/
Dir1462784082/
Dir1462784449/
Dir1462785051/
Dir1462785101/
Dir1462785229/
Dir1462785767/
Dir1462786781/
Dir1462787086/
Dir1462787332/
Dir1462787509/
Dir1462787685/
Dir1462788769/
Dir1462789853/
Dir1462791296/
Dir1462791946/
Dir1462792907/
Dir1462794048/
Dir1462794590/
Dir1462797583/
Dir1462798726/
Dir1462801846/
Dir1462801972/
Dir1462802958/
Dir1462804360/
Dir1462804501/
Dir1462805183/
Dir1462806289/
Dir1462807000/
Dir1462807428/
Dir1462808031/
Dir1462811748/
Dir1462811981/
Dir1462812942/
Dir1462813188/
Dir1462814021/
Dir1462814143/
Dir1462814391/
Dir1462815460/
Dir1462816027/
Dir1462816862/
Dir1462818365/
Dir1462818477/
Dir1462819616/
Dir1462820282/
Dir1462820394/
Dir1462823943/
Dir1462824753/
Dir1462824793/
Dir1462825148/
Dir1462825451/
Dir1462826701/
Dir1462827247/
Dir1462828198/
Dir1462833365/
Dir1462837257/
Dir1462837738/
Dir1462840017/
Dir1462840927/
Dir1462841405/
Dir1462842367/
Dir1462843505/
Dir1462843622/
Dir1462844708/
Dir1462845954/
Dir1462847226/
Dir1462850279/
Dir1462851537/
Dir1462852820/
Dir1462853277/
Dir1462853418/
Dir1462854136/
Dir1462863136/
Dir1462868944/
Dir1462869845/
Dir1462869909/
Dir1462869970/
Dir1462870084/
Dir1462870337/
Dir1462870444/
Dir1462871066/
Dir1462872258/
Dir1462872552/
Dir1462873267/
Dir1462874045/
Dir1462874884/
Dir1462874954/
Dir1462875365/
Dir1462875553/
Dir1462875983/
Dir1462876930/
Dir1462877108/
Dir1462877169/
Dir1462877587/
Dir1462877777/
Dir1462877957/
Dir1462882089/
Dir1462883587/
Dir1462884068/
Dir1462885595/
Dir1462889256/
Dir1462891393/
Dir1462891572/
Dir1462918985/
Dir1462920064/
Dir1462920376/
Dir1462920784/
Dir1462920908/
Dir1462921031/
Dir1462922233/
Dir1462922357/
Dir1462923854/
Dir1462924819/
Dir1462927151/
Dir1462928171/
Dir1462928299/
Dir1462934230/
Dir1462938194/
Dir1462939145/
Dir1462939274/
Dir1462939884/
Dir1462939990/
Dir1462940113/
Dir1462942956/
Dir1462944367/
Dir1462945987/
Dir1462949898/
Dir1462950077/
Dir1462952113/
Dir1462953896/
Dir1462953899/
Dir1462954266/
Dir1462956190/
Dir1462956379/
Dir1462956552/
Dir1462957792/
Dir1462958768/
Dir1462958834/
Dir1462960027/
Dir1462960334/
Dir1462961778/
Dir1462961885/
Dir1462963420/
Dir1462963421/
Dir1462963423/
Dir1462963424/
Dir1462963425/
Dir1462963426/
Dir1462963427/
Dir1462963429/
Dir1462963430/
Dir1462963431/
Dir1462963432/
Dir1462963435/
Dir1462963436/
Dir1462963437/
Dir1462963439/
Dir1462963441/
Dir1462963443/
Dir1462963445/
Dir1462963446/
Dir1462963449/
Dir1462963450/
Dir1462963451/
Dir1462963452/
Dir1462963453/
Dir1462963455/
Dir1462963456/
Dir1462963457/
Dir1462963458/
Dir1462963459/
Dir1462963461/
Dir1462964297/
Dir1462964353/
Dir1462965005/
Dir1462965006/
Dir1462965376/
Dir1462967174/
Dir1462968148/
Dir1462968730/
Dir1462971491/
Dir1462972988/
Dir1462973297/
Dir1462974551/
Dir1462974731/
Dir1462975583/
Dir1462975929/
Dir1462976178/
Dir1462976534/
Dir1462977784/
Dir1462977966/
Dir1462978029/
Dir1462980907/
Dir1462981147/
Dir1462981337/
Dir1462981421/
Dir1462982111/
Dir1462983308/
Dir1462984474/
Dir1462984477/
Dir1462987843/
Dir1462987985/
Dir1462988110/
Dir1462988111/
Dir1462988647/
Dir1462989250/
Dir1462990735/
Dir1462991351/
Dir1462992016/
Dir1462992425/
Dir1462993331/
Dir1462993692/
Dir1462993929/
Dir1462994052/
Dir1462999270/
Dir1463000766/
Dir1463002144/
Dir1463002874/
Dir1463003407/
Dir1463005925/
Dir1463006595/
Dir1463010378/
Dir1463010974/
Dir1463011873/
Dir1463012175/
Dir1463013006/
Dir1463018046/
Dir1463019134/
Dir1463020994/
Dir1463021706/
Dir1463025244/
Dir1463025496/
Dir1463025676/
Dir1463026153/
Dir1463027047/
Dir1463027657/
Dir1463028844/
Dir1463030831/
Dir1463030850/
Dir1463031507/
Dir1463034078/
Dir1463035336/
Dir1463036516/
Dir1463036790/
Dir1463039767/
Dir1463041338/
Dir1463041934/
Dir1463041992/
Dir1463042467/
Dir1463043258/
Dir1463043754/
Dir1463044036/
Dir1463044988/
Dir1463045529/
Dir1463045778/
Dir1463045886/
Dir1463047093/
Dir1463048390/
Dir1463052052/
Dir1463052479/
Dir1463052586/
Dir1463052705/
Dir1463052767/
Dir1463053308/
Dir1463055645/
Dir1463056433/
Dir1463056603/
Dir1463056660/
Dir1463057920/
Dir1463058770/
Dir1463059421/
Dir1463059547/
Dir1463059846/
Dir1463059907/
Dir1463060091/
Dir1463060809/
Dir1463063073/
Dir1463063074/
Dir1463063694/
Dir1463063695/
Dir1463063872/
Dir1463064048/
Dir1463064461/
Dir1463064463/
Dir1463064946/
Dir1463065541/
Dir1463068124/
Dir1463068731/
Dir1463073465/
Dir1463074359/
Dir1463074957/
Dir1463075019/
Dir1463075080/
Dir1463075260/
Dir1463075321/
Dir1463075748/
Dir1463079098/
Dir1463079405/
Dir1463080245/
Dir1463081735/
Dir1463086122/
Dir1463086247/
Dir1463088396/
Dir1463088580/
Dir1463089719/
Dir1463091345/
Dir1463091400/
Dir1463092894/
Dir1463093505/
Dir1463093684/
Dir1463094874/
Dir1463095064/
Dir1463096498/
Dir1463097514/
Dir1463098069/
Dir1463099873/
Dir1463100101/
Dir1463103099/
Dir1463103516/
Dir1463107421/
Dir1463108437/
Dir1463109159/
Dir1463110656/
Dir1463111745/
Dir1463115704/
Dir1463118466/
Dir1463118715/
Dir1463122598/
Dir1463125182/
Dir1463125305/
Dir1463129558/
Dir1463132203/
Dir1463132327/
Dir1463132495/
Dir1463134001/
Dir1463134002/
Dir1463134070/
Dir1463137061/
Dir1463138024/
Dir1463139636/
Dir1463140431/
Dir1463142399/
Dir1463143180/
Dir1463143968/
Dir1463146535/
Dir1463148643/
Dir1463149002/
Dir1463150566/
Dir1463152006/
Dir1463152901/
Dir1463154466/
Dir1463155302/
Dir1463157274/
Dir1463157997/
Dir1463158421/
Dir1463161359/
Dir1463162860/
Dir1463164599/
Dir1463164728/
Dir1463165607/
Dir1463166412/
Dir1463167538/
Dir1463168139/
Dir1463169661/
Dir1463171304/
Dir1463171431/
Dir1463172463/
Dir1463172797/
Dir1463174449/
Dir1463175414/
Dir1463175580/
Dir1463176423/
Dir1463176660/
Dir1463177436/
Dir1463178049/
Dir1463179897/
Dir1463180756/
Dir1463180979/
Dir1463183197/
Dir1463183810/
Dir1463184376/
Dir1463184647/
Dir1463185596/
Dir1463188323/
Dir1463190577/
Dir1463193161/
Dir1463209308/
Dir1463214948/
Dir1463219566/
Dir1463227549/
Dir1463256465/
Dir1463256875/
Dir1463258495/
Dir1463275474/
Dir1463321066/
Dir1463333549/
Dir1463337033/
Dir1463361331/
Dir1463361933/
Dir1463362353/
Dir1463363126/
Dir1463365047/
Dir1463365475/
Dir1463367447/
Dir1463370152/
Dir1463371239/
Dir1463372798/
Dir1463379517/
Dir1463380950/
Dir1463381485/
Dir1463382330/
Dir1463384315/
Dir1463391691/
Dir1463393313/
Dir1463399795/
Dir1463402198/
Dir1463405738/
Dir1463406147/
Dir1463406330/
Dir1463408251/
Dir1463408437/
Dir1463409072/
Dir1463409571/
Dir1463409625/
Dir1463412986/
Dir1463414930/
Dir1463415464/
Dir1463416784/
Dir1463418227/
Dir1463419191/
Dir1463419547/
Dir1463419612/
Dir1463419786/
Dir1463421345/
Dir1463421527/
Dir1463422188/
Dir1463423802/
Dir1463423923/
Dir1463424055/
Dir1463424763/
Dir1463425065/
Dir1463426861/
Dir1463430165/
Dir1463430587/
Dir1463430604/
Dir1463433836/
Dir1463434115/
Dir1463434175/
Dir1463434539/
Dir1463436642/
Dir1463436817/
Dir1463436886/
Dir1463437124/
Dir1463437844/
Dir1463439879/
Dir1463441403/
Dir1463441687/
Dir1463442104/
Dir1463442819/
Dir1463445294/
Dir1463450017/
Dir1463450318/
Dir1463451633/
Dir1463451634/
Dir1463453207/
Dir1463453920/
Dir1463454397/
Dir1463463039/
Dir1463463050/
Dir1463463460/
Dir1463467115/
Dir1463469214/
Dir1463470838/
Dir1463470891/
Dir1463471014/
Dir1463471432/
Dir1463471488/
Dir1463472276/
Dir1463472873/
Dir1463473808/
Dir1463474081/
Dir1463475637/
Dir1463476529/
Dir1463477197/
Dir1463479774/
Dir1463480069/
Dir1463485355/
Dir1463485836/
Dir1463487697/
Dir1463488169/
Dir1463488651/
Dir1463488777/
Dir1463489672/
Dir1463490273/
Dir1463490696/
Dir1463490999/
Dir1463491291/
Dir1463491773/
Dir1463495467/
Dir1463496818/
Dir1463496992/
Dir1463497653/
Dir1463498023/
Dir1463499041/
Dir1463499152/
Dir1463501191/
Dir1463501488/
Dir1463501611/
Dir1463502162/
Dir1463502939/
Dir1463503720/
Dir1463505403/
Dir1463506249/
Dir1463508475/
Dir1463508648/
Dir1463508762/
Dir1463509716/
Dir1463510147/
Dir1463510276/
Dir1463511111/
Dir1463511406/
Dir1463511520/
Dir1463514105/
Dir1463514817/
Dir1463515007/
Dir1463515381/
Dir1463515382/
Dir1463515383/
Dir1463515384/
Dir1463515386/
Dir1463515388/
Dir1463515389/
Dir1463515390/
Dir1463515393/
Dir1463515413/
Dir1463515415/
Dir1463515416/
Dir1463515418/
Dir1463515438/
Dir1463515439/
Dir1463515441/
Dir1463515442/
Dir1463515602/
Dir1463515717/
Dir1463515861/
Dir1463515862/
Dir1463515863/
Dir1463515866/
Dir1463515867/
Dir1463515868/
Dir1463515869/
Dir1463515872/
Dir1463515875/
Dir1463515876/
Dir1463515877/
Dir1463515879/
Dir1463515886/
Dir1463515888/
Dir1463515889/
Dir1463515892/
Dir1463516205/
Dir1463516206/
Dir1463516208/
Dir1463516210/
Dir1463516211/
Dir1463516212/
Dir1463516216/
Dir1463516217/
Dir1463516218/
Dir1463516220/
Dir1463516223/
Dir1463516228/
Dir1463516230/
Dir1463516231/
Dir1463516233/
Dir1463516234/
Dir1463518059/
Dir1463519923/
Dir1463520401/
Dir1463521247/
Dir1463522079/
Dir1463522200/
Dir1463523337/
Dir1463525085/
Dir1463525324/
Dir1463525685/
Dir1463525862/
Dir1463526045/
Dir1463526654/
Dir1463526952/
Dir1463527364/
Dir1463527830/
Dir1463527902/
Dir1463528691/
Dir1463534745/
Dir1463534943/
Dir1463534947/
Dir1463535110/
Dir1463535324/
Dir1463535460/
Dir1463535648/
Dir1463536661/
Dir1463538767/
Dir1463539844/
Dir1463540713/
Dir1463540714/
Dir1463540912/
Dir1463541054/
Dir1463541349/
Dir1463542127/
Dir1463542541/
Dir1463543750/
Dir1463544369/
Dir1463545408/
Dir1463547710/
Dir1463547934/
Dir1463549329/
Dir1463549521/
Dir1463549681/
Dir1463553099/
Dir1463553700/
Dir1463554368/
Dir1463554486/
Dir1463555037/
Dir1463555328/
Dir1463557480/
Dir1463559643/
Dir1463559948/
Dir1463560219/
Dir1463560787/
Dir1463561029/
Dir1463562877/
Dir1463563064/
Dir1463563302/
Dir1463563427/
Dir1463563778/
Dir1463564567/
Dir1463566852/
Dir1463567323/
Dir1463568590/
Dir1463569011/
Dir1463570383/
Dir1463571020/
Dir1463571999/
Dir1463572186/
Dir1463572248/
Dir1463573629/
Dir1463581604/
Dir1463588085/
Dir1463588389/
Dir1463588447/
Dir1463588448/
Dir1463588505/
Dir1463588561/
Dir1463588627/
Dir1463588682/
Dir1463588862/
Dir1463594155/
Dir1463594327/
Dir1463594328/
Dir1463594386/
Dir1463594754/
Dir1463594755/
Dir1463594756/
Dir1463594864/
Dir1463594924/
Dir1463594925/
Dir1463595047/
Dir1463595937/
Dir1463601401/
Dir1463601522/
Dir1463601945/
Dir1463602137/
Dir1463603689/
Dir1463603815/
Dir1463606270/
Dir1463607464/
Dir1463607525/
Dir1463607771/
Dir1463608062/
Dir1463609801/
Dir1463610340/
Dir1463614058/
Dir1463615563/
Dir1463616578/
Dir1463617725/
Dir1463618746/
Dir1463619578/
Dir1463620484/
Dir1463622106/
Dir1463622765/
Dir1463624438/
Dir1463624439/
Dir1463629182/
Dir1463630557/
Dir1463631220/
Dir1463632189/
Dir1463632371/
Dir1463632728/
Dir1463632908/
Dir1463633204/
Dir1463634226/
Dir1463634343/
Dir1463638311/
Dir1463641003/
Dir1463642200/
Dir1463642318/
Dir1463642562/
Dir1463642981/
Dir1463643945/
Dir1463644308/
Dir1463645145/
Dir1463647120/
Dir1463649290/
Dir1463649700/
Dir1463650362/
Dir1463650486/
Dir1463650604/
Dir1463650718/
Dir1463650910/
Dir1463651378/
Dir1463654560/
Dir1463655047/
Dir1463655287/
Dir1463657264/
Dir1463658522/
Dir1463660806/
Dir1463661888/
Dir1463662429/
Dir1463663146/
Dir1463663439/
Dir1463663507/
Dir1463664284/
Dir1463664650/
Dir1463665129/
Dir1463665303/
Dir1463666017/
Dir1463666508/
Dir1463667049/
Dir1463667101/
Dir1463668369/
Dir1463668778/
Dir1463670469/
Dir1463676645/
Dir1463678331/
Dir1463679467/
Dir1463679886/
Dir1463679949/
Dir1463679999/
Dir1463680118/
Dir1463680119/
Dir1463680238/
Dir1463680658/
Dir1463680791/
Dir1463681139/
Dir1463682762/
Dir1463682995/
Dir1463683072/
Dir1463683493/
Dir1463683955/
Dir1463684199/
Dir1463684562/
Dir1463685464/
Dir1463689716/
Dir1463708651/
Dir1463723525/
Dir1463737733/
Dir1463737734/
Dir1463737735/
Dir1463737736/
Dir1463737739/
Dir1463737740/
Dir1463737741/
Dir1463737742/
Dir1463737743/
Dir1463737747/
Dir1463737750/
Dir1463737753/
Dir1463737754/
Dir1463737755/
Dir1463737758/
Dir1463737761/
Dir1463737762/
Dir1463737763/
Dir1463737765/
Dir1463737769/
Dir1463737770/
Dir1463737771/
Dir1463737772/
Dir1463737778/
Dir1463737779/
Dir1463737780/
Dir1463737781/
Dir1463739706/
Dir1463739911/
Dir1463740271/
Dir1463740464/
Dir1463740641/
Dir1463740853/
Dir1463780312/
Dir1463781626/
Dir1463781751/
Dir1463782056/
Dir1463785591/
Dir1463788599/
Dir1463788961/
Dir1463788962/
Dir1463789008/
Dir1463789077/
Dir1463789134/
Dir1463789192/
Dir1463789193/
Dir1463789318/
Dir1463789374/
Dir1463789375/
Dir1463789499/
Dir1463789500/
Dir1463789555/
Dir1463789611/
Dir1463789670/
Dir1463792435/
Dir1463793215/
Dir1463797774/
Dir1463797872/
Dir1463797949/
Dir1463798013/
Dir1463798193/
Dir1463798372/
Dir1463798428/
Dir1463799509/
Dir1463799692/
Dir1463800471/
Dir1463800890/
Dir1463802458/
Dir1463802571/
Dir1463803658/
Dir1463804553/
Dir1463804738/
Dir1463805583/
Dir1463805875/
Dir1463806480/
Dir1463812721/
Dir1463819616/
Dir1463819914/
Dir1463822317/
Dir1463830355/
Dir1463838819/
Dir1463843135/
Dir1463843195/
Dir1463843853/
Dir1463844029/
Dir1463845475/
Dir1463847037/
Dir1463847160/
Dir1463850273/
Dir1463850334/
Dir1463850450/
Dir1463851001/
Dir1463852256/
Dir1463852488/
Dir1463853991/
Dir1463854293/
Dir1463856942/
Dir1463862511/
Dir1463868090/
Dir1463868508/
Dir1463873677/
Dir1463906560/
Dir1463910039/
Dir1463916212/
Dir1463920239/
Dir1463921252/
Dir1463927313/
Dir1463928157/
Dir1463947891/
Dir1463949093/
Dir1463954196/
Dir1463957738/
Dir1463958156/
Dir1463958209/
Dir1463958330/
Dir1463959528/
Dir1463961880/
Dir1463963918/
Dir1463965119/
Dir1463969675/
Dir1463970576/
Dir1463970700/
Dir1463974289/
Dir1463975376/
Dir1463977413/
Dir1463979628/
Dir1463982160/
Dir1463982270/
Dir1463982760/
Dir1463984492/
Dir1463984556/
Dir1463985170/
Dir1463985220/
Dir1463985993/
Dir1463987071/
Dir1463987668/
Dir1463988402/
Dir1463988640/
Dir1463988700/
Dir1463989473/
Dir1463989711/
Dir1463990380/
Dir1463990677/
Dir1463991091/
Dir1463991333/
Dir1463992159/
Dir1463992828/
Dir1463994159/
Dir1463994275/
Dir1463994579/
Dir1463995473/
Dir1463996320/
Dir1464006271/
Dir1464012216/
Dir1464012270/
Dir1464012336/
Dir1464012392/
Dir1464012633/
Dir1464012929/
Dir1464013051/
Dir1464013234/
Dir1464013361/
Dir1464013417/
Dir1464013654/
Dir1464013779/
Dir1464014317/
Dir1464015816/
Dir1464017069/
Dir1464017675/
Dir1464018155/
Dir1464018394/
Dir1464021281/
Dir1464032875/
Dir1464033713/
Dir1464044411/
Dir1464053744/
Dir1464054226/
Dir1464055194/
Dir1464056227/
Dir1464056294/
Dir1464056410/
Dir1464056464/
Dir1464056526/
Dir1464056597/
Dir1464056598/
Dir1464056720/
Dir1464056779/
Dir1464056836/
Dir1464057037/
Dir1464057106/
Dir1464057245/
Dir1464057486/
Dir1464057675/
Dir1464057725/
Dir1464058033/
Dir1464060139/
Dir1464061864/
Dir1464062291/
Dir1464062465/
Dir1464063006/
Dir1464064450/
Dir1464064503/
Dir1464064997/
Dir1464066006/
Dir1464068643/
Dir1464070690/
Dir1464070807/
Dir1464073149/
Dir1464074943/
Dir1464075555/
Dir1464075725/
Dir1464076385/
Dir1464077709/
Dir1464078365/
Dir1464078485/
Dir1464079205/
Dir1464079689/
Dir1464080343/
Dir1464080531/
Dir1464080704/
Dir1464081014/
Dir1464081303/
Dir1464081794/
Dir1464082219/
Dir1464082220/
Dir1464082265/
Dir1464082991/
Dir1464083178/
Dir1464083595/
Dir1464086223/
Dir1464087424/
Dir1464087852/
Dir1464090307/
Dir1464091566/
Dir1464092767/
Dir1464093605/
Dir1464094986/
Dir1464095765/
Dir1464096906/
Dir1464097148/
Dir1464097870/
Dir1464098236/
Dir1464099497/
Dir1464099555/
Dir1464099663/
Dir1464100236/
Dir1464101899/
Dir1464102198/
Dir1464102434/
Dir1464103505/
Dir1464104175/
Dir1464107837/
Dir1464108008/
Dir1464110714/
Dir1464111315/
Dir1464111736/
Dir1464112276/
Dir1464112330/
Dir1464113142/
Dir1464113511/
Dir1464114163/
Dir1464114289/
Dir1464114401/
Dir1464115060/
Dir1464117099/
Dir1464118779/
Dir1464119264/
Dir1464123288/
Dir1464124125/
Dir1464125137/
Dir1464125210/
Dir1464126166/
Dir1464126401/
Dir1464126941/
Dir1464127004/
Dir1464127185/
Dir1464127539/
Dir1464127903/
Dir1464128207/
Dir1464129168/
Dir1464130000/
Dir1464130129/
Dir1464130357/
Dir1464130785/
Dir1464131024/
Dir1464131810/
Dir1464132351/
Dir1464132942/
Dir1464133123/
Dir1464133358/
Dir1464134136/
Dir1464134209/
Dir1464140803/
Dir1464141889/
Dir1464142902/
Dir1464143025/
Dir1464143270/
Dir1464146090/
Dir1464150405/
Dir1464157900/
Dir1464158448/
Dir1464159349/
Dir1464159461/
Dir1464159524/
Dir1464160247/
Dir1464161812/
Dir1464162226/
Dir1464163721/
Dir1464163899/
Dir1464164685/
Dir1464165647/
Dir1464166190/
Dir1464167798/
Dir1464169188/
Dir1464169847/
Dir1464170091/
Dir1464170630/
Dir1464172246/
Dir1464172487/
Dir1464172717/
Dir1464172909/
Dir1464173023/
Dir1464174098/
Dir1464175361/
Dir1464176741/
Dir1464176981/
Dir1464177227/
Dir1464177336/
Dir1464177399/
Dir1464178599/
Dir1464181067/
Dir1464182197/
Dir1464182198/
Dir1464182330/
Dir1464182443/
Dir1464182508/
Dir1464183790/
Dir1464185812/
Dir1464185981/
Dir1464186279/
Dir1464186528/
Dir1464186829/
Dir1464188205/
Dir1464188924/
Dir1464189530/
Dir1464189578/
Dir1464191803/
Dir1464191861/
Dir1464192165/
Dir1464193249/
Dir1464202064/
Dir1464204521/
Dir1464204769/
Dir1464204770/
Dir1464204771/
Dir1464204827/
Dir1464205006/
Dir1464205422/
Dir1464205786/
Dir1464205844/
Dir1464206021/
Dir1464207520/
Dir1464207819/
Dir1464208730/
Dir1464208904/
Dir1464209204/
Dir1464209392/
Dir1464210711/
Dir1464211781/
Dir1464212149/
Dir1464212330/
Dir1464212691/
Dir1464213952/
Dir1464215930/
Dir1464216041/
Dir1464218379/
Dir1464219108/
Dir1464224089/
Dir1464224739/
Dir1464227629/
Dir1464228109/
Dir1464232077/
Dir1464232190/
Dir1464233451/
Dir1464234349/
Dir1464235191/
Dir1464235242/
Dir1464239279/
Dir1464241789/
Dir1464244851/
Dir1464244968/
Dir1464245738/
Dir1464246287/
Dir1464250961/
Dir1464251092/
Dir1464251634/
Dir1464251739/
Dir1464252406/
Dir1464253129/
Dir1464254690/
Dir1464255409/
Dir1464257140/
Dir1464258404/
Dir1464259550/
Dir1464259786/
Dir1464264290/
Dir1464264435/
Dir1464264532/
Dir1464265060/
Dir1464265910/
Dir1464266746/
Dir1464269989/
Dir1464270883/
Dir1464271312/
Dir1464271540/
Dir1464271779/
Dir1464271906/
Dir1464272029/
Dir1464272080/
Dir1464273767/
Dir1464273884/
Dir1464274781/
Dir1464274899/
Dir1464275148/
Dir1464276229/
Dir1464276460/
Dir1464277431/
Dir1464280540/
Dir1464280858/
Dir1464280923/
Dir1464280983/
Dir1464281268/
Dir1464282710/
Dir1464285220/
Dir1464286606/
Dir1464291770/
Dir1464295006/
Dir1464305571/
Dir1464305631/
Dir1464305687/
Dir1464305744/
Dir1464305745/
Dir1464305803/
Dir1464305875/
Dir1464305928/
Dir1464305984/
Dir1464306281/
Dir1464306472/
Dir1464307789/
Dir1464307843/
Dir1464308209/
Dir1464309403/
Dir1464313183/
Dir1464313908/
Dir1464316485/
Dir1464317273/
Dir1464320090/
Dir1464321346/
Dir1464322781/
Dir1464323093/
Dir1464326450/
Dir1464328727/
Dir1464329332/
Dir1464329567/
Dir1464332750/
Dir1464333280/
Dir1464335567/
Dir1464336831/
Dir1464340857/
Dir1464341154/
Dir1464343850/
Dir1464344323/
Dir1464348881/
Dir1464350093/
Dir1464353149/
Dir1464355306/
Dir1464357345/
Dir1464358124/
Dir1464358903/
Dir1464360651/
Dir1464360764/
Dir1464362688/
Dir1464364179/
Dir1464365143/
Dir1464367004/
Dir1464368336/
Dir1464369107/
Dir1464370354/
Dir1464370969/
Dir1464371677/
Dir1464373368/
Dir1464375278/
Dir1464375640/
Dir1464380688/
Dir1464380809/
Dir1464380866/
Dir1464381162/
Dir1464381282/
Dir1464381409/
Dir1464383028/
Dir1464383212/
Dir1464383513/
Dir1464383985/
Dir1464384945/
Dir1464385426/
Dir1464386144/
Dir1464391181/
Dir1464392389/
Dir1464394426/
Dir1464394969/
Dir1464395267/
Dir1464405693/
Dir1464409538/
Dir1464414760/
Dir1464422069/
Dir1464423005/
Dir1464425010/
Dir1464425012/
Dir1464425558/
Dir1464426999/
Dir1464427863/
Dir1464431763/
Dir1464431902/
Dir1464432030/
Dir1464432153/
Dir1464432298/
Dir1464434252/
Dir1464440372/
Dir1464444695/
Dir1464444820/
Dir1464448169/
Dir1464451713/
Dir1464476010/
Dir1464490416/
Dir1464501217/
Dir1464501758/
Dir1464505900/
Dir1464549392/
Dir1464557562/
Dir1464559182/
Dir1464562665/
Dir1464564043/
Dir1464564340/
Dir1464570464/
Dir1464575385/
Dir1464576467/
Dir1464581684/
Dir1464584022/
Dir1464591157/
Dir1464591789/
Dir1464591791/
Dir1464591990/
Dir1464592897/
Dir1464593873/
Dir1464593916/
Dir1464597045/
Dir1464598182/
Dir1464599084/
Dir1464599136/
Dir1464601840/
Dir1464601969/
Dir1464602451/
Dir1464602567/
Dir1464605925/
Dir1464607788/
Dir1464607900/
Dir1464608628/
Dir1464608693/
Dir1464609880/
Dir1464611678/
Dir1464612106/
Dir1464612820/
Dir1464614685/
Dir1464615050/
Dir1464615108/
Dir1464616306/
Dir1464616487/
Dir1464616961/
Dir1464617200/
Dir1464618049/
Dir1464621284/
Dir1464621520/
Dir1464624708/
Dir1464626203/
Dir1464627707/
Dir1464630644/
Dir1464631369/
Dir1464635317/
Dir1464637121/
Dir1464638146/
Dir1464643182/
Dir1464645465/
Dir1464645518/
Dir1464651279/
Dir1464651468/
Dir1464654161/
Dir1464654766/
Dir1464661004/
Dir1464661302/
Dir1464663335/
Dir1464664842/
Dir1464666278/
Dir1464666398/
Dir1464666586/
Dir1464666700/
Dir1464667902/
Dir1464675224/
Dir1464676661/
Dir1464679608/
Dir1464682180/
Dir1464684644/
Dir1464687348/
Dir1464688726/
Dir1464690936/
Dir1464692148/
Dir1464695027/
Dir1464695806/
Dir1464696165/
Dir1464696524/
Dir1464696945/
Dir1464698623/
Dir1464701739/
Dir1464701925/
Dir1464702515/
Dir1464702892/
Dir1464703066/
Dir1464703301/
Dir1464706547/
Dir1464706719/
Dir1464708229/
Dir1464708279/
Dir1464708584/
Dir1464709546/
Dir1464709661/
Dir1464710506/
Dir1464710736/
Dir1464710985/
Dir1464711886/
Dir1464712127/
Dir1464713752/
Dir1464714052/
Dir1464715245/
Dir1464717819/
Dir1464718598/
Dir1464719561/
Dir1464725375/
Dir1464725438/
Dir1464725562/
Dir1464725626/
Dir1464725740/
Dir1464726396/
Dir1464727424/
Dir1464729049/
Dir1464729526/
Dir1464729766/
Dir1464731139/
Dir1464731986/
Dir1464732101/
Dir1464733357/
Dir1464734323/
Dir1464734438/
Dir1464736116/
Dir1464736604/
Dir1464738519/
Dir1464738646/
Dir1464738815/
Dir1464739552/
Dir1464740400/
Dir1464742672/
Dir1464743454/
Dir1464745063/
Dir1464745064/
Dir1464745706/
Dir1464746015/
Dir1464746731/
Dir1464747394/
Dir1464747817/
Dir1464748663/
Dir1464749571/
Dir1464752446/
Dir1464752745/
Dir1464753051/
Dir1464755875/
Dir1464756051/
Dir1464756644/
Dir1464759102/
Dir1464763008/
Dir1464763074/
Dir1464763674/
Dir1464763845/
Dir1464763911/
Dir1464764145/
Dir1464765649/
Dir1464766009/
Dir1464766010/
Dir1464767928/
Dir1464770148/
Dir1464770209/
Dir1464770388/
Dir1464770752/
Dir1464773870/
Dir1464773925/
Dir1464775134/
Dir1464775843/
Dir1464776213/
Dir1464776332/
Dir1464776385/
Dir1464776987/
Dir1464777290/
Dir1464783527/
Dir1464783586/
Dir1464784124/
Dir1464786234/
Dir1464787011/
Dir1464787546/
Dir1464787664/
Dir1464787730/
Dir1464787852/
Dir1464788088/
Dir1464788687/
Dir1464789044/
Dir1464789291/
Dir1464792301/
Dir1464796849/
Dir1464797813/
Dir1464797814/
Dir1464798044/
Dir1464798173/
Dir1464798232/
Dir1464800145/
Dir1464801228/
Dir1464803262/
Dir1464803569/
Dir1464803863/
Dir1464805968/
Dir1464806094/
Dir1464806151/
Dir1464807222/
Dir1464807650/
Dir1464808303/
Dir1464809147/
Dir1464809565/
Dir1464810530/
Dir1464812268/
Dir1464812335/
Dir1464812625/
Dir1464814674/
Dir1464815033/
Dir1464815330/
Dir1464815875/
Dir1464816822/
Dir1464818812/
Dir1464819107/
Dir1464819292/
Dir1464821393/
Dir1464822774/
Dir1464823008/
Dir1464824812/
Dir1464824988/
Dir1464826672/
Dir1464829364/
Dir1464847124/
Dir1464848085/
Dir1464849043/
Dir1464849348/
Dir1464850070/
Dir1464850188/
Dir1464851027/
Dir1464852824/
Dir1464853123/
Dir1464853848/
Dir1464854329/
Dir1464854930/
Dir1464855284/
Dir1464856612/
Dir1464856678/
Dir1464858107/
Dir1464859246/
Dir1464859494/
Dir1464859670/
Dir1464860034/
Dir1464860204/
Dir1464861291/
Dir1464861764/
Dir1464862552/
Dir1464862967/
Dir1464864709/
Dir1464864942/
Dir1464867137/
Dir1464867139/
Dir1464867145/
Dir1464867147/
Dir1464867150/
Dir1464867151/
Dir1464867152/
Dir1464867153/
Dir1464867157/
Dir1464867160/
Dir1464867162/
Dir1464867163/
Dir1464867164/
Dir1464867166/
Dir1464867167/
Dir1464867169/
Dir1464867170/
Dir1464867172/
Dir1464867175/
Dir1464867176/
Dir1464867178/
Dir1464867183/
Dir1464867186/
Dir1464867188/
Dir1464867190/
Dir1464867191/
Dir1464867193/
Dir1464867194/
Dir1464867196/
Dir1464867482/
Dir1464867483/
Dir1464867488/
Dir1464867489/
Dir1464867490/
Dir1464867494/
Dir1464867495/
Dir1464867496/
Dir1464867499/
Dir1464867501/
Dir1464867502/
Dir1464867504/
Dir1464867506/
Dir1464867507/
Dir1464867508/
Dir1464867510/
Dir1464867511/
Dir1464867512/
Dir1464867513/
Dir1464867514/
Dir1464867516/
Dir1464867517/
Dir1464867518/
Dir1464867519/
Dir1464867520/
Dir1464867522/
Dir1464867523/
Dir1464867524/
Dir1464867525/
Dir1464867526/
Dir1464867527/
Dir1464867531/
Dir1464867533/
Dir1464867534/
Dir1464867537/
Dir1464867539/
Dir1464867542/
Dir1464868010/
Dir1464873112/
Dir1464874903/
Dir1464875326/
Dir1464875722/
Dir1464875723/
Dir1464875728/
Dir1464875729/
Dir1464875730/
Dir1464875731/
Dir1464875734/
Dir1464875735/
Dir1464875736/
Dir1464875739/
Dir1464875741/
Dir1464875742/
Dir1464875750/
Dir1464875751/
Dir1464875752/
Dir1464875810/
Dir1464877546/
Dir1464878146/
Dir1464878694/
Dir1464879231/
Dir1464879648/
Dir1464880011/
Dir1464880366/
Dir1464880612/
Dir1464880785/
Dir1464881385/
Dir1464882470/
Dir1464883836/
Dir1464884135/
Dir1464884436/
Dir1464887495/
Dir1464888215/
Dir1464888458/
Dir1464890794/
Dir1464890915/
Dir1464892417/
Dir1464893317/
Dir1464895181/
Dir1464895596/
Dir1464896445/
Dir1464896915/
Dir1464898537/
Dir1464899617/
Dir1464900217/
Dir1464900457/
Dir1464900938/
Dir1464901057/
Dir1464901417/
Dir1464904237/
Dir1464905197/
Dir1464905377/
Dir1464905437/
Dir1464906397/
Dir1464907297/
Dir1464908017/
Dir1464909577/
Dir1464910209/
Dir1464912216/
Dir1464915370/
Dir1464915431/
Dir1464915490/
Dir1464918912/
Dir1464920950/
Dir1464921371/
Dir1464921670/
Dir1464923230/
Dir1464925090/
Dir1464930311/
Dir1464930368/
Dir1464930431/
Dir1464930551/
Dir1464931150/
Dir1464931391/
Dir1464931450/
Dir1464933045/
Dir1464933358/
Dir1464936310/
Dir1464936550/
Dir1464937329/
Dir1464938710/
Dir1464940871/
Dir1464941950/
Dir1464942687/
Dir1464943571/
Dir1464945250/
Dir1464946090/
Dir1464946571/
Dir1464948731/
Dir1464950591/
Dir1464952452/
Dir1464953531/
Dir1464953891/
Dir1464954550/
Dir1464957251/
Dir1464959769/
Dir1464960008/
Dir1464960670/
Dir1464960851/
Dir1464963610/
Dir1464964326/
Dir1464964391/
Dir1464964451/
Dir1464965538/
Dir1464967870/
Dir1464971170/
Dir1464973692/
Dir1464973871/
Dir1464975048/
Dir1464975078/
Dir1464975194/
Dir1464976571/
Dir1464976691/
Dir1464978206/
Dir1464979827/
Dir1464980427/
Dir1464981267/
Dir1464982046/
Dir1464982466/
Dir1464982946/
Dir1464983426/
Dir1464985818/
Dir1464985886/
Dir1464987926/
Dir1464988166/
Dir1464988406/
Dir1464990986/
Dir1464995546/
Dir1464996026/
Dir1464996206/
Dir1464996604/
Dir1464996746/
Dir1464998365/
Dir1465001906/
Dir1465002146/
Dir1465007457/
Dir1465009766/
Dir1465011506/
Dir1465025126/
Dir1465025606/
Dir1465025786/
Dir1465025966/
Dir1465026026/
Dir1465029014/
Dir1465036586/
Dir1465039803/
Dir1465043486/
Dir1465047306/
Dir1465052046/
Dir1465055707/
Dir1465061453/
Dir1465071066/
Dir1465078447/
Dir1465083011/
Dir1465088286/
Dir1465090807/
Dir1465093855/
Dir1465112442/
Dir1465113522/
Dir1465113762/
Dir1465113882/
Dir1465114182/
Dir1465114302/
Dir1465118862/
Dir1465126205/
Dir1465147602/
Dir1465155882/
Dir1465158611/
Dir1465160682/
Dir1465168662/
Dir1465169802/
Dir1465174062/
Dir1465175848/
Dir1465177168/
Dir1465177948/
Dir1465179389/
Dir1465180288/
Dir1465183529/
Dir1465184249/
Dir1465187468/
Dir1465188185/
Dir1465188634/
Dir1465188809/
Dir1465190368/
Dir1465190943/
Dir1465191520/
Dir1465193729/
Dir1465195108/
Dir1465196128/
Dir1465197273/
Dir1465200210/
Dir1465202249/
Dir1465204468/
Dir1465204668/
Dir1465204771/
Dir1465204829/
Dir1465205188/
Dir1465206090/
Dir1465206688/
Dir1465207408/
Dir1465210888/
Dir1465212570/
Dir1465212638/
Dir1465212808/
Dir1465214909/
Dir1465216349/
Dir1465217309/
Dir1465217428/
Dir1465217488/
Dir1465218028/
Dir1465218088/
Dir1465218213/
Dir1465219048/
Dir1465221150/
Dir1465221268/
Dir1465222890/
Dir1465223191/
Dir1465223790/
Dir1465224929/
Dir1465227446/
Dir1465229186/
Dir1465229666/
Dir1465229845/
Dir1465229906/
Dir1465230446/
Dir1465230506/
Dir1465232491/
Dir1465233747/
Dir1465234271/
Dir1465234709/
Dir1465235427/
Dir1465235608/
Dir1465235668/
Dir1465236253/
Dir1465237346/
Dir1465238187/
Dir1465240226/
Dir1465240646/
Dir1465245030/
Dir1465248571/
Dir1465252173/
Dir1465252174/
Dir1465252231/
Dir1465252290/
Dir1465252410/
Dir1465252472/
Dir1465252771/
Dir1465252950/
Dir1465253130/
Dir1465253253/
Dir1465253372/
Dir1465253790/
Dir1465253910/
Dir1465254871/
Dir1465255770/
Dir1465255806/
Dir1465256370/
Dir1465258352/
Dir1465258532/
Dir1465258592/
Dir1465259011/
Dir1465261711/
Dir1465262132/
Dir1465265138/
Dir1465265310/
Dir1465266155/
Dir1465266391/
Dir1465266675/
Dir1465268611/
Dir1465269091/
Dir1465269511/
Dir1465272511/
Dir1465277250/
Dir1465279474/
Dir1465279770/
Dir1465279891/
Dir1465280790/
Dir1465280910/
Dir1465281091/
Dir1465281211/
Dir1465284272/
Dir1465284632/
Dir1465285712/
Dir1465285831/
Dir1465286491/
Dir1465287991/
Dir1465288223/
Dir1465290091/
Dir1465291409/
Dir1465291533/
Dir1465292851/
Dir1465292973/
Dir1465294290/
Dir1465295733/
Dir1465295911/
Dir1465298191/
Dir1465299060/
Dir1465299391/
Dir1465301070/
Dir1465301851/
Dir1465304671/
Dir1465305090/
Dir1465305210/
Dir1465305511/
Dir1465305751/
Dir1465306296/
Dir1465306410/
Dir1465307490/
Dir1465307671/
Dir1465309591/
Dir1465309769/
Dir1465309878/
Dir1465310131/
Dir1465310190/
Dir1465310790/
Dir1465311152/
Dir1465313068/
Dir1465313371/
Dir1465313971/
Dir1465315470/
Dir1465315533/
Dir1465315830/
Dir1465316516/
Dir1465317869/
Dir1465320634/
Dir1465320700/
Dir1465322131/
Dir1465322431/
Dir1465323091/
Dir1465324110/
Dir1465324176/
Dir1465324471/
Dir1465324591/
Dir1465324652/
Dir1465325010/
Dir1465326086/
Dir1465326386/
Dir1465331467/
Dir1465334484/
Dir1465334485/
Dir1465334544/
Dir1465334664/
Dir1465334665/
Dir1465334785/
Dir1465335030/
Dir1465335147/
Dir1465335504/
Dir1465336164/
Dir1465337064/
Dir1465337124/
Dir1465337185/
Dir1465337304/
Dir1465338746/
Dir1465340603/
Dir1465342045/
Dir1465347084/
Dir1465347205/
Dir1465347564/
Dir1465351105/
Dir1465352309/
Dir1465352429/
Dir1465352609/
Dir1465353026/
Dir1465353629/
Dir1465356870/
Dir1465356989/
Dir1465360049/
Dir1465361189/
Dir1465362749/
Dir1465363108/
Dir1465363589/
Dir1465363805/
Dir1465368332/
Dir1465368451/
Dir1465371809/
Dir1465372169/
Dir1465372589/
Dir1465373369/
Dir1465373609/
Dir1465374869/
Dir1465375950/
Dir1465376969/
Dir1465378409/
Dir1465380569/
Dir1465380870/
Dir1465380871/
Dir1465381109/
Dir1465381409/
Dir1465381531/
Dir1465381709/
Dir1465383031/
Dir1465385402/
Dir1465385613/
Dir1465386511/
Dir1465390049/
Dir1465390770/
Dir1465390949/
Dir1465391729/
Dir1465392153/
Dir1465392810/
Dir1465393169/
Dir1465393949/
Dir1465394429/
Dir1465395149/
Dir1465395449/
Dir1465397969/
Dir1465400849/
Dir1465401029/
Dir1465401449/
Dir1465401990/
Dir1465402109/
Dir1465402291/
Dir1465403849/
Dir1465404569/
Dir1465405289/
Dir1465406969/
Dir1465407005/
Dir1465407989/
Dir1465407990/
Dir1465408349/
Dir1465408829/
Dir1465409069/
Dir1465411529/
Dir1465412670/
Dir1465412969/
Dir1465413509/
Dir1465413749/
Dir1465415849/
Dir1465416030/
Dir1465416209/
Dir1465418429/
Dir1465419269/
Dir1465420229/
Dir1465421490/
Dir1465421909/
Dir1465422329/
Dir1465422869/
Dir1465422929/
Dir1465423829/
Dir1465424729/
Dir1465428606/
Dir1465428809/
Dir1465429050/
Dir1465429351/
Dir1465429829/
Dir1465430970/
Dir1465431631/
Dir1465432169/
Dir1465432710/
Dir1465434750/
Dir1465434989/
Dir1465436248/
Dir1465436850/
Dir1465443450/
Dir1465444829/
Dir1465446268/
Dir1465446509/
Dir1465446629/
Dir1465447050/
Dir1465448729/
Dir1465449089/
Dir1465450304/
Dir1465453048/
Dir1465454549/
Dir1465454848/
Dir1465455329/
Dir1465455429/
Dir1465461053/
Dir1465464389/
Dir1465465889/
Dir1465467270/
Dir1465467809/
Dir1465468049/
Dir1465468529/
Dir1465469130/
Dir1465470929/
Dir1465471886/
Dir1465472069/
Dir1465473390/
Dir1465473689/
Dir1465474949/
Dir1465477649/
Dir1465478009/
Dir1465478369/
Dir1465478969/
Dir1465480049/
Dir1465480050/
Dir1465480548/
Dir1465482682/
Dir1465482989/
Dir1465483168/
Dir1465483590/
Dir1465484609/
Dir1465484850/
Dir1465485090/
Dir1465486530/
Dir1465486709/
Dir1465489771/
Dir1465490195/
Dir1465490729/
Dir1465491990/
Dir1465492769/
Dir1465493309/
Dir1465493470/
Dir1465497091/
Dir1465497329/
Dir1465497509/
Dir1465497568/
Dir1465498229/
Dir1465500448/
Dir1465502011/
Dir1465502069/
Dir1465504223/
Dir1465505790/
Dir1465506451/
Dir1465507530/
Dir1465508369/
Dir1465508429/
Dir1465509149/
Dir1465509390/
Dir1465512208/
Dir1465512869/
Dir1465513290/
Dir1465514008/
Dir1465515010/
Dir1465519649/
Dir1465520249/
Dir1465520309/
Dir1465526969/
Dir1465532070/
Dir1465532491/
Dir1465532608/
Dir1465536652/
Dir1465539269/
Dir1465539989/
Dir1465543289/
Dir1465543529/
Dir1465543829/
Dir1465548329/
Dir1465550009/
Dir1465552109/
Dir1465552589/
Dir1465558251/
Dir1465560090/
Dir1465560389/
Dir1465565909/
Dir1465566089/
Dir1465568249/
Dir1465568609/
Dir1465569043/
Dir1465569870/
Dir1465575510/
Dir1465575749/
Dir1465576529/
Dir1465576709/
Dir1465577849/
Dir1465578384/
Dir1465579818/
Dir1465580246/
Dir1465581863/
Dir1465582584/
Dir1465583604/
Dir1465583723/
Dir1465585763/
Dir1465589304/
Dir1465590323/
Dir1465590608/
Dir1465591343/
Dir1465592604/
Dir1465592783/
Dir1465592964/
Dir1465593204/
Dir1465594284/
Dir1465594343/
Dir1465596143/
Dir1465597283/
Dir1465599743/
Dir1465601663/
Dir1465603283/
Dir1465606164/
Dir1465609824/
Dir1465610664/
Dir1465610784/
Dir1465611504/
Dir1465612366/
Dir1465612644/
Dir1465612944/
Dir1465614684/
Dir1465623074/
Dir1465623075/
Dir1465631244/
Dir1465633104/
Dir1465634543/
Dir1465639585/
Dir1465644605/
Dir1465650323/
Dir1465650683/
Dir1465659143/
Dir1465662503/
Dir1465662683/
Dir1465662923/
Dir1465666255/
Dir1465670543/
Dir1465677043/
Dir1465692743/
Dir1465698658/
Dir1465704444/
Dir1465713143/
Dir1465719023/
Dir1465719563/
Dir1465723944/
Dir1465725444/
Dir1465741464/
Dir1465741704/
Dir1465743744/
Dir1465743923/
Dir1465752648/
Dir1465754723/
Dir1465758203/
Dir1465763416/
Dir1465765731/
Dir1465765732/
Dir1465765733/
Dir1465765734/
Dir1465765739/
Dir1465765740/
Dir1465765742/
Dir1465765759/
Dir1465765760/
Dir1465765761/
Dir1465765772/
Dir1465765773/
Dir1465765775/
Dir1465766185/
Dir1465766186/
Dir1465766187/
Dir1465766189/
Dir1465766192/
Dir1465766193/
Dir1465766194/
Dir1465766213/
Dir1465766215/
Dir1465766218/
Dir1465766226/
Dir1465766228/
Dir1465766229/
Dir1465802124/
Dir1465803924/
Dir1465804524/
Dir1465805124/
Dir1465806263/
Dir1465814724/
Dir1465817461/
Dir1465821264/
Dir1465827864/
Dir1465828260/
Dir1465829124/
Dir1465829303/
Dir1465830503/
Dir1465831524/
Dir1465831944/
Dir1465832184/
Dir1465832603/
Dir1465834764/
Dir1465839044/
Dir1465845983/
Dir1465849808/
Dir1465854083/
Dir1465859966/
Dir1465885884/
Dir1465895304/
Dir1465900763/
Dir1465901363/
Dir1465901543/
Dir1465901723/
Dir1465902203/
Dir1465902323/
Dir1465902446/
Dir1465903283/
Dir1465903703/
Dir1465903806/
Dir1465904724/
Dir1465904784/
Dir1465905381/
Dir1465906284/
Dir1465907663/
Dir1465907785/
Dir1465908623/
Dir1465909707/
Dir1465911387/
Dir1465911564/
Dir1465912045/
Dir1465912283/
Dir1465914756/
Dir1465915344/
Dir1465915583/
Dir1465915884/
Dir1465917743/
Dir1465918248/
Dir1465919543/
Dir1465922423/
Dir1465925429/
Dir1465928843/
Dir1465936254/
Dir1465938203/
Dir1465940543/
Dir1465941265/
Dir1465941983/
Dir1465942283/
Dir1465944623/
Dir1465948703/
Dir1465949063/
Dir1465949123/
Dir1465957815/
Dir1465960044/
Dir1465961064/
Dir1465967483/
Dir1465968504/
Dir1465970483/
Dir1465976281/
Dir1465979405/
Dir1465979483/
Dir1465980264/
Dir1465980383/
Dir1465981644/
Dir1465981943/
Dir1465983084/
Dir1465984403/
Dir1465984824/
Dir1465986383/
Dir1465987163/
Dir1465987823/
Dir1465988003/
Dir1465988303/
Dir1465990163/
Dir1465990204/
Dir1465995023/
Dir1465995623/
Dir1465997844/
Dir1465999703/
Dir1466000244/
Dir1466001122/
Dir1466001503/
Dir1466005343/
Dir1466005463/
Dir1466006003/
Dir1466006123/
Dir1466006243/
Dir1466006543/
Dir1466008163/
Dir1466008765/
Dir1466009964/
Dir1466011284/
Dir1466011866/
Dir1466025083/
Dir1466025923/
Dir1466027065/
Dir1466027363/
Dir1466029464/
Dir1466030244/
Dir1466045063/
Dir1466046803/
Dir1466061323/
Dir1466061443/
Dir1466062043/
Dir1466062764/
Dir1466062834/
Dir1466063063/
Dir1466063303/
Dir1466068886/
Dir1466070683/
Dir1466075424/
Dir1466075903/
Dir1466079084/
Dir1466080043/
Dir1466081124/
Dir1466085504/
Dir1466087064/
Dir1466087243/
Dir1466087428/
Dir1466087963/
Dir1466088804/
Dir1466088863/
Dir1466095466/
Dir1466095883/
Dir1466096003/
Dir1466098223/
Dir1466098702/
Dir1466109005/
Dir1466118923/
Dir1466121683/
Dir1466121804/
Dir1466124863/
Dir1466150363/
Dir1466157563/
Dir1466159183/
Dir1466160143/
Dir1466165483/
Dir1466166083/
Dir1466166863/
Dir1466168063/
Dir1466169994/
Dir1466169995/
Dir1466173944/
Dir1466178329/
Dir1466181203/
Dir1466181863/
Dir1466187444/
Dir1466201183/
Dir1466217383/
Dir1466221044/
Dir1466235323/
Dir1466243663/
Dir1466247263/
Dir1466252303/
Dir1466254283/
Dir1466265863/
Dir1466280923/
Dir1466287583/
Dir1466292683/
Dir1466324903/
Dir1466325623/
Dir1466332645/
Dir1466371043/
Dir1466390543/
Dir1466410762/
Dir1466411363/
Dir1466414003/
Dir1466414723/
Dir1466418203/
Dir1466418323/
Dir1466419823/
Dir1466422101/
Dir1466423423/
Dir1466424023/
Dir1466424203/
Dir1466424324/
Dir1466424563/
Dir1466429347/
Dir1466429439/
Dir1466429441/
Dir1466429444/
Dir1466429448/
Dir1466429537/
Dir1466430562/
Dir1466430924/
Dir1466432136/
Dir1466432603/
Dir1466433145/
Dir1466433623/
Dir1466436985/
Dir1466442023/
Dir1466442383/
Dir1466443103/
Dir1466444422/
Dir1466445385/
Dir1466446344/
Dir1466448684/
Dir1466448744/
Dir1466449823/
Dir1466450483/
Dir1466452343/
Dir1466453183/
Dir1466453664/
Dir1466455163/
Dir1466458923/
Dir1466461203/
Dir1466461863/
Dir1466463783/
Dir1466471582/
Dir1466473803/
Dir1466475603/
Dir1466482204/
Dir1466488143/
Dir1466491739/
Dir1466491863/
Dir1466492342/
Dir1466494383/
Dir1466495583/
Dir1466495883/
Dir1466497323/
Dir1466500561/
Dir1466500920/
Dir1466501722/
Dir1466501723/
Dir1466504100/
Dir1466506743/
Dir1466506980/
Dir1466508244/
Dir1466509322/
Dir1466510219/
Dir1466511125/
Dir1466512260/
Dir1466513580/
Dir1466513820/
Dir1466515860/
Dir1466516764/
Dir1466519595/
Dir1466520059/
Dir1466520844/
Dir1466520901/
Dir1466521083/
Dir1466521263/
Dir1466522403/
Dir1466523119/
Dir1466524079/
Dir1466529182/
Dir1466541723/
Dir1466541840/
Dir1466541963/
Dir1466541964/
Dir1466542023/
Dir1466542082/
Dir1466542144/
Dir1466542263/
Dir1466542923/
Dir1466543041/
Dir1466543160/
Dir1466543463/
Dir1466543944/
Dir1466546042/
Dir1466547543/
Dir1466549043/
Dir1466549220/
Dir1466552280/
Dir1466553480/
Dir1466554080/
Dir1466557203/
Dir1466557619/
Dir1466559603/
Dir1466561280/
Dir1466561403/
Dir1466563623/
Dir1466563743/
Dir1466565603/
Dir1466567703/
Dir1466568359/
Dir1466572563/
Dir1466574063/
Dir1466576103/
Dir1466578143/
Dir1466579882/
Dir1466580003/
Dir1466580902/
Dir1466581803/
Dir1466582163/
Dir1466583783/
Dir1466583784/
Dir1466589244/
Dir1466591523/
Dir1466594583/
Dir1466596081/
Dir1466596261/
Dir1466598363/
Dir1466600163/
Dir1466600940/
Dir1466601000/
Dir1466601359/
Dir1466603580/
Dir1466605889/
Dir1466616605/
Dir1466617224/
Dir1466636425/
Dir1466636544/
Dir1466636604/
Dir1466636664/
Dir1466636724/
Dir1466637444/
Dir1466637744/
Dir1466638203/
Dir1466638404/
Dir1466643146/
Dir1466643325/
Dir1466646385/
Dir1466652984/
Dir1466653224/
Dir1466653284/
Dir1466653344/
Dir1466653584/
Dir1466655504/
Dir1466656464/
Dir1466657664/
Dir1466661624/
Dir1466663185/
Dir1466668164/
Dir1466668284/
Dir1466669124/
Dir1466669683/
Dir1466669724/
Dir1466670085/
Dir1466671403/
Dir1466672064/
Dir1466673325/
Dir1466674709/
Dir1466675964/
Dir1466678546/
Dir1466679805/
Dir1466682263/
Dir1466683584/
Dir1466684964/
Dir1466685745/
Dir1466685925/
Dir1466687726/
Dir1466687784/
Dir1466687906/
Dir1466688084/
Dir1466688206/
Dir1466688446/
Dir1466688865/
Dir1466688924/
Dir1466689765/
Dir1466693064/
Dir1466693307/
Dir1466694084/
Dir1466696063/
Dir1466697155/
Dir1466697924/
Dir1466703046/
Dir1466724418/
Dir1466724478/
Dir1466724538/
Dir1466724598/
Dir1466724646/
Dir1466724656/
Dir1466725259/
Dir1466726638/
Dir1466733661/
Dir1466734018/
Dir1466735458/
Dir1466739418/
Dir1466743558/
Dir1466751118/
Dir1466751238/
Dir1466751538/
Dir1466752498/
Dir1466754358/
Dir1466754478/
Dir1466760304/
Dir1466767071/
Dir1466767768/
Dir1466770080/
Dir1466770678/
Dir1466771471/
Dir1466773499/
Dir1466774398/
Dir1466774459/
Dir1466778700/
Dir1466783140/
Dir1466783158/
Dir1466787058/
Dir1466790478/
Dir1466791498/
Dir1466791738/
Dir1466792459/
Dir1466796538/
Dir1466796898/
Dir1466797678/
Dir1466798159/
Dir1466799476/
Dir1466799778/
Dir1466800798/
Dir1466800920/
Dir1466804638/
Dir1466811010/
Dir1466820264/
Dir1466821880/
Dir1466859384/
Dir1466860284/
Dir1466869884/
Dir1466874924/
Dir1466878224/
Dir1466888664/
Dir1466890464/
Dir1466890644/
Dir1466894544/
Dir1466897724/
Dir1466957184/
Dir1466958744/
Dir1466959884/
Dir1466961984/
Dir1466970144/
Dir1466973084/
Dir1466978124/
Dir1466979444/
Dir1466981544/
Dir1466982144/
Dir1466988204/
Dir1466988444/
Dir1466992824/
Dir1467000084/
Dir1467002363/
Dir1467003324/
Dir1467009264/
Dir1467010403/
Dir1467012924/
Dir1467016825/
Dir1467020124/
Dir1467028359/
Dir1467029904/
Dir1467039113/
Dir1467039695/
Dir1467040279/
Dir1467041179/
Dir1467043517/
Dir1467045799/
Dir1467046397/
Dir1467047177/
Dir1467047717/
Dir1467047837/
Dir1467048377/
Dir1467049340/
Dir1467051077/
Dir1467051918/
Dir1467051977/
Dir1467052238/
Dir1467052338/
Dir1467052578/
Dir1467052999/
Dir1467053298/
Dir1467053657/
Dir1467054259/
Dir1467061819/
Dir1467065418/
Dir1467066140/
Dir1467066729/
Dir1467067602/
Dir1467072197/
Dir1467072379/
Dir1467073639/
Dir1467074239/
Dir1467074780/
Dir1467076401/
Dir1467077119/
Dir1467079039/
Dir1467080062/
Dir1467080422/
Dir1467080962/
Dir1467081059/
Dir1467081443/
Dir1467081862/
Dir1467083002/
Dir1467092011/
Dir1467092137/
Dir1467092140/
Dir1467092963/
Dir1467093562/
Dir1467094222/
Dir1467097882/
Dir1467098242/
Dir1467099683/
Dir1467099863/
Dir1467100823/
Dir1467101363/
Dir1467101423/
Dir1467101542/
Dir1467101914/
Dir1467102323/
Dir1467106228/
Dir1467108086/
Dir1467108443/
Dir1467114861/
Dir1467115644/
Dir1467118163/
Dir1467119543/
Dir1467120863/
Dir1467121103/
Dir1467123324/
Dir1467123385/
Dir1467123984/
Dir1467124282/
Dir1467124403/
Dir1467125123/
Dir1467125842/
Dir1467126080/
Dir1467126321/
Dir1467127224/
Dir1467127225/
Dir1467128963/
Dir1467129803/
Dir1467129879/
Dir1467131182/
Dir1467133284/
Dir1467134075/
Dir1467134970/
Dir1467135089/
Dir1467136524/
Dir1467136643/
Dir1467137244/
Dir1467137783/
Dir1467138444/
Dir1467138563/
Dir1467139343/
Dir1467139883/
Dir1467140721/
Dir1467141983/
Dir1467142465/
Dir1467143063/
Dir1467143433/
Dir1467145104/
Dir1467145893/
Dir1467148102/
Dir1467159206/
Dir1467160286/
Dir1467164906/
Dir1467168146/
Dir1467170668/
Dir1467171266/
Dir1467175226/
Dir1467177266/
Dir1467179487/
Dir1467179906/
Dir1467180086/
Dir1467180266/
Dir1467181406/
Dir1467181766/
Dir1467181886/
Dir1467182366/
Dir1467182486/
Dir1467186567/
Dir1467187586/
Dir1467190889/
Dir1467191666/
Dir1467191966/
Dir1467192927/
Dir1467194006/
Dir1467195447/
Dir1467197786/
Dir1467197906/
Dir1467198029/
Dir1467199769/
Dir1467201146/
Dir1467203054/
Dir1467204626/
Dir1467204687/
Dir1467205946/
Dir1467206186/
Dir1467206426/
Dir1467210091/
Dir1467212308/
Dir1467213087/
Dir1467215186/
Dir1467216566/
Dir1467216867/
Dir1467217226/
Dir1467225567/
Dir1467226886/
Dir1467227606/
Dir1467229767/
Dir1467230366/
Dir1467230606/
Dir1467230908/
Dir1467231146/
Dir1467233246/
Dir1467233444/
Dir1467237926/
Dir1467240266/
Dir1467240627/
Dir1467242787/
Dir1467244587/
Dir1467244946/
Dir1467245426/
Dir1467250467/
Dir1467250647/
Dir1467252865/
Dir1467252986/
Dir1467254187/
Dir1467260666/
Dir1467261026/
Dir1467261266/
Dir1467261746/
Dir1467262767/
Dir1467264386/
Dir1467268586/
Dir1467269306/
Dir1467271346/
Dir1467272306/
Dir1467273026/
Dir1467275966/
Dir1467282087/
Dir1467283886/
Dir1467284186/
Dir1467285746/
Dir1467288326/
Dir1467288686/
Dir1467288926/
Dir1467289408/
Dir1467297253/
Dir1467315809/
Dir1467316529/
Dir1467316648/
Dir1467317669/
Dir1467317789/
Dir1467318029/
Dir1467319961/
Dir1467320069/
Dir1467320249/
Dir1467320485/
Dir1467322283/
Dir1467322822/
Dir1467323432/
Dir1467323731/
Dir1467325046/
Dir1467326183/
Dir1467326841/
Dir1467326900/
Dir1467327140/
Dir1467330920/
Dir1467333563/
Dir1467338422/
Dir1467340702/
Dir1467341842/
Dir1467343102/
Dir1467345202/
Dir1467346413/
Dir1467354382/
Dir1467360983/
Dir1467362300/
Dir1467362482/
Dir1467362722/
Dir1467362962/
Dir1467363080/
Dir1467363143/
Dir1467363560/
Dir1467364761/
Dir1467370161/
Dir1467370884/
Dir1467371842/
Dir1467372085/
Dir1467375023/
Dir1467376222/
Dir1467376342/
Dir1467380662/
Dir1467381028/
Dir1467383663/
Dir1467387260/
Dir1467389242/
Dir1467391523/
Dir1467392182/
Dir1467395420/
Dir1467396382/
Dir1467399382/
Dir1467399802/
Dir1467404183/
Dir1467417862/
Dir1467427582/
Dir1467427822/
Dir1467437481/
Dir1467451222/
Dir1467454762/
Dir1467459982/
Dir1467506902/
Dir1467521362/
Dir1467564802/
Dir1467567263/
Dir1467586942/
Dir1467604768/
Dir1467604886/
Dir1467605006/
Dir1467613226/
Dir1467614664/
Dir1467618146/
Dir1467618686/
Dir1467620426/
Dir1467621506/
Dir1467630506/
Dir1467630686/
Dir1467630687/
Dir1467637886/
Dir1467640225/
Dir1467640297/
Dir1467640646/
Dir1467641546/
Dir1467642158/
Dir1467642446/
Dir1467644308/
Dir1467645146/
Dir1467645626/
Dir1467648206/
Dir1467652345/
Dir1467652948/
Dir1467654446/
Dir1467654507/
Dir1467656004/
Dir1467656362/
Dir1467657922/
Dir1467661582/
Dir1467670164/
Dir1467690622/
Dir1467690802/
Dir1467690922/
Dir1467696142/
Dir1467697518/
Dir1467702022/
Dir1467705922/
Dir1467709644/
Dir1467710783/
Dir1467714383/
Dir1467714742/
Dir1467722305/
Dir1467724043/
Dir1467725962/
Dir1467726263/
Dir1467726802/
Dir1467727703/
Dir1467729682/
Dir1467730282/
Dir1467730523/
Dir1467731725/
Dir1467737066/
Dir1467739522/
Dir1467740963/
Dir1467742548/
Dir1467742643/
Dir1467744683/
Dir1467745463/
Dir1467746062/
Dir1467748403/
Dir1467748946/
Dir1467750803/
Dir1467752424/
Dir1467757883/
Dir1467759262/
Dir1467759742/
Dir1467763886/
Dir1467764002/
Dir1467769361/
Dir1467773963/
Dir1467776962/
Dir1467777202/
Dir1467777622/
Dir1467780983/
Dir1467787043/
Dir1467787523/
Dir1467796283/
Dir1467796702/
Dir1467798322/
Dir1467798682/
Dir1467804746/
Dir1467812123/
Dir1467812244/
Dir1467812782/
Dir1467813922/
Dir1467814702/
Dir1467816082/
Dir1467816201/
Dir1467816923/
Dir1467821123/
Dir1467824543/
Dir1467826284/
Dir1467828625/
Dir1467829582/
Dir1467831743/
Dir1467832824/
Dir1467836782/
Dir1467842183/
Dir1467846682/
Dir1467848542/
Dir1467854843/
Dir1467855143/
Dir1467856343/
Dir1467858923/
Dir1467858924/
Dir1467862232/
Dir1467862958/
Dir1467863302/
Dir1467863482/
Dir1467863843/
Dir1467864804/
Dir1467864922/
Dir1467865042/
Dir1467869477/
Dir1467870015/
Dir1467872062/
Dir1467872182/
Dir1467872482/
Dir1467872522/
Dir1467878183/
Dir1467880044/
Dir1467880260/
Dir1467882083/
Dir1467882922/
Dir1467884243/
Dir1467884724/
Dir1467886643/
Dir1467891065/
Dir1467895103/
Dir1467895585/
Dir1467900743/
Dir1467901887/
Dir1467902663/
Dir1467903263/
Dir1467903684/
Dir1467904523/
Dir1467906144/
Dir1467908105/
Dir1467908111/
Dir1467908112/
Dir1467908113/
Dir1467908114/
Dir1467908115/
Dir1467908116/
Dir1467908117/
Dir1467908118/
Dir1467908119/
Dir1467908120/
Dir1467908121/
Dir1467908122/
Dir1467908123/
Dir1467908124/
Dir1467908125/
Dir1467908126/
Dir1467908127/
Dir1467908128/
Dir1467908129/
Dir1467908130/
Dir1467908131/
Dir1467908132/
Dir1467908133/
Dir1467908134/
Dir1467908135/
Dir1467908136/
Dir1467908137/
Dir1467908138/
Dir1467908139/
Dir1467908140/
Dir1467908141/
Dir1467908142/
Dir1467908143/
Dir1467908144/
Dir1467908145/
Dir1467908146/
Dir1467908147/
Dir1467908148/
Dir1467908150/
Dir1467908152/
Dir1467908153/
Dir1467908154/
Dir1467908155/
Dir1467908157/
Dir1467908158/
Dir1467908159/
Dir1467908160/
Dir1467908161/
Dir1467908162/
Dir1467908163/
Dir1467908164/
Dir1467908165/
Dir1467908166/
Dir1467908167/
Dir1467908168/
Dir1467908170/
Dir1467908171/
Dir1467908173/
Dir1467908174/
Dir1467908175/
Dir1467908176/
Dir1467908177/
Dir1467908178/
Dir1467908179/
Dir1467908180/
Dir1467908181/
Dir1467908182/
Dir1467908183/
Dir1467908184/
Dir1467908186/
Dir1467908187/
Dir1467908189/
Dir1467908190/
Dir1467908191/
Dir1467908193/
Dir1467908194/
Dir1467908200/
Dir1467908202/
Dir1467908203/
Dir1467908205/
Dir1467908206/
Dir1467908207/
Dir1467908208/
Dir1467908209/
Dir1467908210/
Dir1467908212/
Dir1467908213/
Dir1467908214/
Dir1467908215/
Dir1467908216/
Dir1467908217/
Dir1467908219/
Dir1467908220/
Dir1467908222/
Dir1467908223/
Dir1467908224/
Dir1467908227/
Dir1467908230/
Dir1467908232/
Dir1467908235/
Dir1467908237/
Dir1467908239/
Dir1467908242/
Dir1467908244/
Dir1467908247/
Dir1467908249/
Dir1467908251/
Dir1467908254/
Dir1467908256/
Dir1467908258/
Dir1467908261/
Dir1467908263/
Dir1467908544/
Dir1467908603/
Dir1467909803/
Dir1467910766/
Dir1467910941/
Dir1467912442/
Dir1467912652/
Dir1467913224/
Dir1467916283/
Dir1467917723/
Dir1467918685/
Dir1467919405/
Dir1467919466/
Dir1467923459/
Dir1467923786/
Dir1467925826/
Dir1467926786/
Dir1467927985/
Dir1467931886/
Dir1467934218/
Dir1467936806/
Dir1467938186/
Dir1467941666/
Dir1467943106/
Dir1467944725/
Dir1467945086/
Dir1467952106/
Dir1467952705/
Dir1467955585/
Dir1467955886/
Dir1467957505/
Dir1467958646/
Dir1467958885/
Dir1467961165/
Dir1467961827/
Dir1467962185/
Dir1467963147/
Dir1467965306/
Dir1467966653/
Dir1467968305/
Dir1467969805/
Dir1467973046/
Dir1467974794/
Dir1467978446/
Dir1467982886/
Dir1467986245/
Dir1467988337/
Dir1467991226/
Dir1467991945/
Dir1467993445/
Dir1467995368/
Dir1467998065/
Dir1467999625/
Dir1468005505/
Dir1468009894/
Dir1468015526/
Dir1468016546/
Dir1468016665/
Dir1468016785/
Dir1468017266/
Dir1468017807/
Dir1468018165/
Dir1468020085/
Dir1468020628/
Dir1468022005/
Dir1468023866/
Dir1468029686/
Dir1468030889/
Dir1468031465/
Dir1468032866/
Dir1468036165/
Dir1468038026/
Dir1468042263/
Dir1468043605/
Dir1468046605/
Dir1468048345/
Dir1468051346/
Dir1468056146/
Dir1468063225/
Dir1468063835/
Dir1468076305/
Dir1468079185/
Dir1468080146/
Dir1468083505/
Dir1468099586/
Dir1468099765/
Dir1468107003/
Dir1468107685/
Dir1468113685/
Dir1468117913/
Dir1468130965/
Dir1468139453/
Dir1468149145/
Dir1468150243/
Dir1468189885/
Dir1468199546/
Dir1468203985/
Dir1468223965/
Dir1468224745/
Dir1468225286/
Dir1468226126/
Dir1468226306/
Dir1468226425/
Dir1468226606/
Dir1468227206/
Dir1468228766/
Dir1468229186/
Dir1468230627/
Dir1468233658/
Dir1468235546/
Dir1468236792/
Dir1468237825/
Dir1468239386/
Dir1468239505/
Dir1468242746/
Dir1468243046/
Dir1468243527/
Dir1468245385/
Dir1468245866/
Dir1468247125/
Dir1468249946/
Dir1468251926/
Dir1468255766/
Dir1468258272/
Dir1468258886/
Dir1468259245/
Dir1468264465/
Dir1468265185/
Dir1468266266/
Dir1468267705/
Dir1468267825/
Dir1468267945/
Dir1468268365/
Dir1468268785/
Dir1468269112/
Dir1468270465/
Dir1468271367/
Dir1468271907/
Dir1468273529/
Dir1468279879/
Dir1468280785/
Dir1468285105/
Dir1468301845/
Dir1468302565/
Dir1468304006/
Dir1468304725/
Dir1468307487/
Dir1468308626/
Dir1468308926/
Dir1468312272/
Dir1468314445/
Dir1468314566/
Dir1468314926/
Dir1468315170/
Dir1468315345/
Dir1468315525/
Dir1468315828/
Dir1468316005/
Dir1468316248/
Dir1468316485/
Dir1468317126/
Dir1468320327/
Dir1468322011/
Dir1468323110/
Dir1468325246/
Dir1468325905/
Dir1468331126/
Dir1468331187/
Dir1468332864/
Dir1468333527/
Dir1468334186/
Dir1468337065/
Dir1468339165/
Dir1468339166/
Dir1468339525/
Dir1468344205/
Dir1468346005/
Dir1468346065/
Dir1468346786/
Dirlatest/
Filemozilla-inbound-win32-pgo-bm71-build1-build5.txt.gz701K15-Jan-2016 22:36
Filemozilla-inbound-win32-pgo-bm72-build1-build202.txt.gz574K18-May-2016 14:14
Filemozilla-inbound-win32-pgo-bm73-build1-build218.txt.gz614K26-Mar-2016 13:09
Filemozilla-inbound-win32-pgo-bm74-build1-build140.txt.gz579K17-May-2016 18:25
Filemozilla-inbound-win32-pgo-bm91-build1-build191.txt.gz572K26-May-2016 22:49
Filemozilla-inbound_win7-ix_test-chromez-bm110-tests1-windows-build2478.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_win7-ix_test-dromaeojs-e10s-bm109-tests1-windows-build1907.txt.gz46K08-Apr-2016 21:07
Filemozilla-inbound_win7-ix_test-g1-bm111-tests1-windows-build1066.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_win7-ix_test-mochitest-1-bm126-tests1-windows-build96.txt.gz84K05-Mar-2016 16:10
Filemozilla-inbound_win7-ix_test-other_nol64-bm110-tests1-windows-build1297.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_win7-ix_test-other_nol64-bm110-tests1-windows-build1298.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_win7-ix_test-svgr-bm110-tests1-windows-build2614.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_win7-ix_test-svgr-bm110-tests1-windows-build2616.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_win7-ix_test-tp5o-bm110-tests1-windows-build2394.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_win7-ix_test-xperf-bm112-tests1-windows-build1264.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_win8_test-chromez-bm110-tests1-windows-build2478.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_win8_test-chromez-bm111-tests1-windows-build2156.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_win8_test-dromaeojs-bm111-tests1-windows-build2156.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_win8_test-g1-bm112-tests1-windows-build622.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_win8_test-other_nol64-bm109-tests1-windows-build1352.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_win8_test-svgr-bm110-tests1-windows-build2417.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_win8_test-tp5o-bm110-tests1-windows-build2444.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_win8_test-tp5o-bm110-tests1-windows-build2446.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_xp-ix_test-chromez-bm109-tests1-windows-build2126.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_xp-ix_test-chromez-bm110-tests1-windows-build2446.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_xp-ix_test-g1-bm110-tests1-windows-build1410.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_xp-ix_test-g2-e10s-bm111-tests1-windows-build1705.txt.gz26K24-Mar-2016 15:18
Filemozilla-inbound_xp-ix_test-g2-e10s-bm112-tests1-windows-build1549.txt.gz26K24-Mar-2016 15:18
Filemozilla-inbound_xp-ix_test-g2-e10s-bm112-tests1-windows-build1550.txt.gz26K24-Mar-2016 15:24
Filemozilla-inbound_xp-ix_test-g2-e10s-bm112-tests1-windows-build1551.txt.gz26K24-Mar-2016 15:24
Filemozilla-inbound_xp-ix_test-g2-e10s-bm112-tests1-windows-build1552.txt.gz26K24-Mar-2016 15:25
Filemozilla-inbound_xp-ix_test-g2-e10s-bm119-tests1-windows-build1752.txt.gz26K24-Mar-2016 15:25
Filemozilla-inbound_xp-ix_test-g2-e10s-bm126-tests1-windows-build852.txt.gz26K24-Mar-2016 15:23
Filemozilla-inbound_xp-ix_test-g2-e10s-bm126-tests1-windows-build853.txt.gz26K24-Mar-2016 15:25
Filemozilla-inbound_xp-ix_test-other_nol64-bm110-tests1-windows-build1386.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_xp-ix_test-svgr-bm109-tests1-windows-build1998.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_xp-ix_test-svgr-bm112-tests1-windows-build1122.txt.gz3K23-Oct-2015 12:40
Filemozilla-inbound_xp-ix_test-tp5o-e10s-bm109-tests1-windows-build1892.txt.gz82K15-Apr-2016 16:04
Filemozilla-inbound_xp-ix_test-tp5o-e10s-bm110-tests1-windows-build1585.txt.gz82K04-Apr-2016 23:11
Filemozilla-inbound_xp-ix_test-tp5o-e10s-bm111-tests1-windows-build1739.txt.gz82K15-Apr-2016 15:33
Filemozilla-central-win32-bm70-build1-build10.txt.gz565K14-Jan-2016 21:19mozilla-inbound_xp-ix_test-tp5o-e10s-bm119-tests1-windows-build1674.txt.gz82K15-Apr-2016 16:04
Filemozilla-central-win32-bm73-build1-build20.txt.gz576K17-Dec-2015 16:27mozilla-inbound_xp-ix_test-tp5o-e10s-bm127-tests1-windows-build874.txt.gz82K15-Apr-2016 16:04
Filemozilla-central-win32-pgo-bm73-build1-build18.txt.gz656K17-Dec-2015 18:25mozilla-inbound_xp-ix_test-tp5o-e10s-bm127-tests1-windows-build875.txt.gz82K15-Apr-2016 16:06
Filemozilla-central_xp-ix_test-mochitest-devtools-chrome-6-bm126-tests1-windows-build35.txt.gz117K14-Jan-2016 21:29mozilla-inbound_xp_ix_test-mochitest-devtools-chrome-1-bm110-tests1-windows-build55.txt.gz58K26-May-2016 14:03
- - + diff -Nru firefox-49.0~b6+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-1.html firefox-49.0~b7+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-1.html --- firefox-49.0~b6+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-1.html 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-1.html 2016-08-26 05:53:22.000000000 +0000 @@ -0,0 +1,14 @@ + + + +
+
+
+
+ + diff -Nru firefox-49.0~b6+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-1-ref.html firefox-49.0~b7+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-1-ref.html --- firefox-49.0~b6+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-1-ref.html 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-1-ref.html 2016-08-26 05:53:22.000000000 +0000 @@ -0,0 +1,11 @@ + + + +
+
+ + diff -Nru firefox-49.0~b6+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-2.html firefox-49.0~b7+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-2.html --- firefox-49.0~b6+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-2.html 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-2.html 2016-08-26 05:53:21.000000000 +0000 @@ -0,0 +1,12 @@ + + + +
+
+
+ + diff -Nru firefox-49.0~b6+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-2-ref.html firefox-49.0~b7+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-2-ref.html --- firefox-49.0~b6+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-2-ref.html 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-2-ref.html 2016-08-26 05:53:22.000000000 +0000 @@ -0,0 +1,7 @@ + + + +
+ + + diff -Nru firefox-49.0~b6+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling.html firefox-49.0~b7+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling.html --- firefox-49.0~b6+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling.html 2016-08-23 06:51:10.000000000 +0000 +++ firefox-49.0~b7+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ - - - -
-
-
-
- - diff -Nru firefox-49.0~b6+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-ref.html firefox-49.0~b7+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-ref.html --- firefox-49.0~b6+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-ref.html 2016-08-23 06:51:11.000000000 +0000 +++ firefox-49.0~b7+build1/layout/reftests/async-scrolling/bg-fixed-child-no-culling-ref.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ - - - -
-
- - diff -Nru firefox-49.0~b6+build1/layout/reftests/async-scrolling/reftest.list firefox-49.0~b7+build1/layout/reftests/async-scrolling/reftest.list --- firefox-49.0~b6+build1/layout/reftests/async-scrolling/reftest.list 2016-08-23 06:51:10.000000000 +0000 +++ firefox-49.0~b7+build1/layout/reftests/async-scrolling/reftest.list 2016-08-26 05:53:22.000000000 +0000 @@ -7,7 +7,8 @@ skip-if(!asyncPan) == bg-fixed-child-clip-2.html bg-fixed-child-clip-ref.html fuzzy(1,246) fuzzy-if(skiaContent,2,160) fuzzy-if(browserIsRemote&&d2d,53,185) skip-if(!asyncPan) == bg-fixed-child-mask.html bg-fixed-child-mask-ref.html skip-if(!asyncPan) == bg-fixed-in-opacity.html bg-fixed-in-opacity-ref.html -skip-if(!asyncPan) == bg-fixed-child-no-culling.html bg-fixed-child-no-culling-ref.html +skip-if(!asyncPan) == bg-fixed-child-no-culling-1.html bg-fixed-child-no-culling-1-ref.html +skip-if(!asyncPan) == bg-fixed-child-no-culling-2.html bg-fixed-child-no-culling-2-ref.html fuzzy-if(B2G,2,5366) fuzzy-if(Android,2,4000) fuzzy-if(browserIsRemote&&cocoaWidget,2,179524) fuzzy-if(browserIsRemote&&winWidget,1,74590) skip-if(!asyncPan) == bg-fixed-transformed-image.html bg-fixed-transformed-image-ref.html skip-if(!asyncPan) == element-1.html element-1-ref.html pref(layers.force-active,true) skip-if(!asyncPan) == iframe-1.html iframe-1-ref.html diff -Nru firefox-49.0~b6+build1/layout/reftests/bugs/1294102-1.html firefox-49.0~b7+build1/layout/reftests/bugs/1294102-1.html --- firefox-49.0~b6+build1/layout/reftests/bugs/1294102-1.html 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/layout/reftests/bugs/1294102-1.html 2016-08-26 05:53:22.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru firefox-49.0~b6+build1/layout/reftests/bugs/1294102-1-ref.html firefox-49.0~b7+build1/layout/reftests/bugs/1294102-1-ref.html --- firefox-49.0~b6+build1/layout/reftests/bugs/1294102-1-ref.html 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/layout/reftests/bugs/1294102-1-ref.html 2016-08-26 05:53:22.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru firefox-49.0~b6+build1/layout/reftests/bugs/reftest.list firefox-49.0~b7+build1/layout/reftests/bugs/reftest.list --- firefox-49.0~b6+build1/layout/reftests/bugs/reftest.list 2016-08-23 06:51:11.000000000 +0000 +++ firefox-49.0~b7+build1/layout/reftests/bugs/reftest.list 2016-08-26 05:53:23.000000000 +0000 @@ -1957,3 +1957,8 @@ random-if(!winWidget) == 1273154-2.html 1273154-2-ref.html # depends on Windows font == 1274368-1.html 1274368-1-ref.html == 1275411-1.html 1275411-1-ref.html +# Buttons in 2 pages have different position and the rendering result can be +# different, but they should use the same button style and the background color +# should be same. |fuzzy()| here allows the difference in border, but not +# background color. +fuzzy(255,1000) skip-if(!cocoaWidget) == 1294102-1.html 1294102-1-ref.html diff -Nru firefox-49.0~b6+build1/media/webrtc/trunk/webrtc/modules/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureAndroid.java firefox-49.0~b7+build1/media/webrtc/trunk/webrtc/modules/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureAndroid.java --- firefox-49.0~b6+build1/media/webrtc/trunk/webrtc/modules/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureAndroid.java 2016-08-23 06:51:13.000000000 +0000 +++ firefox-49.0~b7+build1/media/webrtc/trunk/webrtc/modules/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureAndroid.java 2016-08-26 05:53:26.000000000 +0000 @@ -106,6 +106,7 @@ if (camera != null) { mResumeCapture = true; stopCapture(); + GeckoAppShell.notifyObservers("VideoCapture:Paused", null); } } @@ -114,6 +115,7 @@ if (mResumeCapture) { startCapture(mCaptureWidth, mCaptureHeight, mCaptureMinFPS, mCaptureMaxFPS); mResumeCapture = false; + GeckoAppShell.notifyObservers("VideoCapture:Resumed", null); } } diff -Nru firefox-49.0~b6+build1/mobile/android/base/java/org/mozilla/gecko/toolbar/BrowserToolbar.java firefox-49.0~b7+build1/mobile/android/base/java/org/mozilla/gecko/toolbar/BrowserToolbar.java --- firefox-49.0~b6+build1/mobile/android/base/java/org/mozilla/gecko/toolbar/BrowserToolbar.java 2016-08-23 06:51:12.000000000 +0000 +++ firefox-49.0~b7+build1/mobile/android/base/java/org/mozilla/gecko/toolbar/BrowserToolbar.java 2016-08-26 05:53:26.000000000 +0000 @@ -162,8 +162,9 @@ } public static BrowserToolbar create(final Context context, final AttributeSet attrs) { + final boolean isLargeResource = context.getResources().getBoolean(R.bool.is_large_resource); final BrowserToolbar toolbar; - if (HardwareUtils.isTablet()) { + if (isLargeResource) { toolbar = new BrowserToolbarTablet(context, attrs); } else { toolbar = new BrowserToolbarPhone(context, attrs); diff -Nru firefox-49.0~b6+build1/mobile/android/base/resources/values/bool.xml firefox-49.0~b7+build1/mobile/android/base/resources/values/bool.xml --- firefox-49.0~b6+build1/mobile/android/base/resources/values/bool.xml 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/mobile/android/base/resources/values/bool.xml 2016-08-26 05:53:26.000000000 +0000 @@ -0,0 +1,18 @@ + + + + + + false + diff -Nru firefox-49.0~b6+build1/mobile/android/base/resources/values-large/bool.xml firefox-49.0~b7+build1/mobile/android/base/resources/values-large/bool.xml --- firefox-49.0~b6+build1/mobile/android/base/resources/values-large/bool.xml 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/mobile/android/base/resources/values-large/bool.xml 2016-08-26 05:53:26.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + true + diff -Nru firefox-49.0~b6+build1/mobile/android/chrome/content/browser.js firefox-49.0~b7+build1/mobile/android/chrome/content/browser.js --- firefox-49.0~b6+build1/mobile/android/chrome/content/browser.js 2016-08-23 06:51:13.000000000 +0000 +++ firefox-49.0~b7+build1/mobile/android/chrome/content/browser.js 2016-08-26 05:53:26.000000000 +0000 @@ -169,7 +169,9 @@ lazilyLoadedObserverScripts.push( ["WebrtcUI", ["getUserMedia:request", "PeerConnection:request", - "recording-device-events"], "chrome://browser/content/WebrtcUI.js"]) + "recording-device-events", + "VideoCapture:Paused", + "VideoCapture:Resumed"], "chrome://browser/content/WebrtcUI.js"]) } lazilyLoadedObserverScripts.forEach(function (aScript) { diff -Nru firefox-49.0~b6+build1/mobile/android/chrome/content/WebrtcUI.js firefox-49.0~b7+build1/mobile/android/chrome/content/WebrtcUI.js --- firefox-49.0~b6+build1/mobile/android/chrome/content/WebrtcUI.js 2016-08-23 06:51:12.000000000 +0000 +++ firefox-49.0~b7+build1/mobile/android/chrome/content/WebrtcUI.js 2016-08-26 05:53:26.000000000 +0000 @@ -46,6 +46,13 @@ this.notify(); break; } + } else if (aTopic === "VideoCapture:Paused") { + if (this._notificationId) { + Notifications.cancel(this._notificationId); + this._notificationId = null; + } + } else if (aTopic === "VideoCapture:Resumed") { + this.notify(); } }, diff -Nru firefox-49.0~b6+build1/modules/libpref/init/all.js firefox-49.0~b7+build1/modules/libpref/init/all.js --- firefox-49.0~b6+build1/modules/libpref/init/all.js 2016-08-23 06:51:14.000000000 +0000 +++ firefox-49.0~b7+build1/modules/libpref/init/all.js 2016-08-26 05:53:27.000000000 +0000 @@ -487,7 +487,7 @@ #elif defined(XP_WIN) pref("media.peerconnection.capture_delay", 50); pref("media.getusermedia.playout_delay", 40); -pref("media.navigator.audio.full_duplex", true); +pref("media.navigator.audio.full_duplex", false); #elif defined(ANDROID) pref("media.peerconnection.capture_delay", 100); pref("media.getusermedia.playout_delay", 100); diff -Nru firefox-49.0~b6+build1/netwerk/protocol/http/HttpChannelChild.cpp firefox-49.0~b7+build1/netwerk/protocol/http/HttpChannelChild.cpp --- firefox-49.0~b6+build1/netwerk/protocol/http/HttpChannelChild.cpp 2016-08-23 06:51:13.000000000 +0000 +++ firefox-49.0~b7+build1/netwerk/protocol/http/HttpChannelChild.cpp 2016-08-26 05:53:27.000000000 +0000 @@ -522,6 +522,13 @@ HttpChannelChild::DoOnStartRequest(nsIRequest* aRequest, nsISupports* aContext) { LOG(("HttpChannelChild::DoOnStartRequest [this=%p]\n", this)); + + // In theory mListener should not be null, but in practice sometimes it is. + MOZ_ASSERT(mListener); + if (!mListener) { + Cancel(NS_ERROR_FAILURE); + return; + } nsresult rv = mListener->OnStartRequest(aRequest, aContext); if (NS_FAILED(rv)) { Cancel(rv); @@ -944,7 +951,12 @@ MOZ_ASSERT(!mOnStopRequestCalled, "We should not call OnStopRequest twice"); - mListener->OnStopRequest(aRequest, aContext, mStatus); + + // In theory mListener should not be null, but in practice sometimes it is. + MOZ_ASSERT(mListener); + if (mListener) { + mListener->OnStopRequest(aRequest, aContext, mStatus); + } mOnStopRequestCalled = true; mListener = 0; diff -Nru firefox-49.0~b6+build1/netwerk/sctp/src/netinet/sctputil.c firefox-49.0~b7+build1/netwerk/sctp/src/netinet/sctputil.c --- firefox-49.0~b6+build1/netwerk/sctp/src/netinet/sctputil.c 2016-08-23 06:51:13.000000000 +0000 +++ firefox-49.0~b7+build1/netwerk/sctp/src/netinet/sctputil.c 2016-08-26 05:53:27.000000000 +0000 @@ -4064,12 +4064,8 @@ vtag = 0; if (stcb != NULL) { - /* We have a TCB to abort, send notification too */ vtag = stcb->asoc.peer_vtag; - sctp_abort_notification(stcb, 0, 0, NULL, SCTP_SO_NOT_LOCKED); - /* get the assoc vrf id and table id */ vrf_id = stcb->asoc.vrf_id; - stcb->asoc.state |= SCTP_STATE_WAS_ABORTED; } sctp_send_abort(m, iphlen, src, dst, sh, vtag, op_err, #if defined(__FreeBSD__) @@ -4077,6 +4073,9 @@ #endif vrf_id, port); if (stcb != NULL) { + /* We have a TCB to abort, send notification too */ + sctp_abort_notification(stcb, 0, 0, NULL, SCTP_SO_NOT_LOCKED); + stcb->asoc.state |= SCTP_STATE_WAS_ABORTED; /* Ok, now lets free it */ #if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING) so = SCTP_INP_SO(inp); @@ -4204,10 +4203,6 @@ } else { stcb->asoc.state |= SCTP_STATE_WAS_ABORTED; } - /* notify the ulp */ - if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) == 0) { - sctp_abort_notification(stcb, 0, 0, NULL, so_locked); - } /* notify the peer */ sctp_send_abort_tcb(stcb, op_err, so_locked); SCTP_STAT_INCR_COUNTER32(sctps_aborted); @@ -4215,6 +4210,10 @@ (SCTP_GET_STATE(&stcb->asoc) == SCTP_STATE_SHUTDOWN_RECEIVED)) { SCTP_STAT_DECR_GAUGE32(sctps_currestab); } + /* notify the ulp */ + if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) == 0) { + sctp_abort_notification(stcb, 0, 0, NULL, so_locked); + } /* now free the asoc */ #ifdef SCTP_ASOCLOG_OF_TSNS sctp_print_out_track_log(stcb); diff -Nru firefox-49.0~b6+build1/other-licenses/bsdiff/moz.build firefox-49.0~b7+build1/other-licenses/bsdiff/moz.build --- firefox-49.0~b6+build1/other-licenses/bsdiff/moz.build 2016-08-23 06:51:13.000000000 +0000 +++ firefox-49.0~b7+build1/other-licenses/bsdiff/moz.build 2016-08-26 05:53:27.000000000 +0000 @@ -21,6 +21,7 @@ HOST_OS_LIBS += [ 'ws2_32', ] + USE_STATIC_LIBS = True LOCAL_INCLUDES += [ '/toolkit/mozapps/update/updater', diff -Nru firefox-49.0~b6+build1/SOURCE_CHANGESET firefox-49.0~b7+build1/SOURCE_CHANGESET --- firefox-49.0~b6+build1/SOURCE_CHANGESET 2016-08-23 06:51:21.000000000 +0000 +++ firefox-49.0~b7+build1/SOURCE_CHANGESET 2016-08-26 05:53:38.000000000 +0000 @@ -1 +1 @@ -e6d6eb0ce3c42b4ebca91b1b1b64b716b2acb9fd \ No newline at end of file +b44c72b85a800d9c6e719579d480bb2c3a87a753 \ No newline at end of file diff -Nru firefox-49.0~b6+build1/testing/marionette/driver.js firefox-49.0~b7+build1/testing/marionette/driver.js --- firefox-49.0~b6+build1/testing/marionette/driver.js 2016-08-23 06:51:14.000000000 +0000 +++ firefox-49.0~b7+build1/testing/marionette/driver.js 2016-08-26 05:53:29.000000000 +0000 @@ -207,7 +207,6 @@ * Command ID to ensure synchronisity. */ GeckoDriver.prototype.sendAsync = function(name, msg, cmdId) { - logger.info(`sendAsync ${this.sessionId}`) let curRemoteFrame = this.curBrowser.frameManager.currentRemoteFrame; name = "Marionette:" + name; diff -Nru firefox-49.0~b6+build1/testing/mozharness/configs/builds/branch_specifics.py firefox-49.0~b7+build1/testing/mozharness/configs/builds/branch_specifics.py --- firefox-49.0~b6+build1/testing/mozharness/configs/builds/branch_specifics.py 2016-08-23 06:51:15.000000000 +0000 +++ firefox-49.0~b7+build1/testing/mozharness/configs/builds/branch_specifics.py 2016-08-26 05:53:29.000000000 +0000 @@ -87,6 +87,9 @@ 'linux64-tsan': { 'update_channel': 'default', }, + 'linux64-add-on-devel': { + 'update_channel': 'default', + }, 'macosx64-debug': { 'update_channel': 'default', }, @@ -99,15 +102,24 @@ 'macosx64-st-an-debug': { 'update_channel': 'default', }, + 'macosx64-add-on-devel': { + 'update_channel': 'default', + }, 'win32-debug': { 'update_channel': 'default', }, 'win32-mulet': { 'update_channel': 'default', }, + 'win32-add-on-devel': { + 'update_channel': 'default', + }, 'win64-debug': { 'update_channel': 'default', }, + 'win64-add-on-devel': { + 'update_channel': 'default', + }, }, }, 'mozilla-beta': { @@ -161,6 +173,9 @@ 'linux64-tsan': { 'update_channel': 'default', }, + 'linux64-add-on-devel': { + 'update_channel': 'default', + }, 'macosx64-debug': { 'update_channel': 'default', }, @@ -173,15 +188,24 @@ 'macosx64-st-an-debug': { 'update_channel': 'default', }, + 'macosx64-add-on-devel': { + 'update_channel': 'default', + }, 'win32-debug': { 'update_channel': 'default', }, 'win32-mulet': { 'update_channel': 'default', }, + 'win32-add-on-devel': { + 'update_channel': 'default', + }, 'win64-debug': { 'update_channel': 'default', }, + 'win64-add-on-devel': { + 'update_channel': 'default', + }, }, }, 'mozilla-esr45': { diff -Nru firefox-49.0~b6+build1/testing/mozharness/scripts/release/push-candidate-to-releases.py firefox-49.0~b7+build1/testing/mozharness/scripts/release/push-candidate-to-releases.py --- firefox-49.0~b6+build1/testing/mozharness/scripts/release/push-candidate-to-releases.py 2016-08-23 06:51:15.000000000 +0000 +++ firefox-49.0~b7+build1/testing/mozharness/scripts/release/push-candidate-to-releases.py 2016-08-26 05:53:29.000000000 +0000 @@ -149,19 +149,30 @@ source, destination = item def copy_key(): - dest_key = bucket.get_key(destination) source_key = bucket.get_key(source) + dest_key = bucket.get_key(destination) + # According to http://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonResponseHeaders.html + # S3 key MD5 is represented as ETag, except when objects are + # uploaded using multipart method. In this case objects's ETag + # is constructed using its MD5, minus symbol, and number of + # part. See http://stackoverflow.com/questions/12186993/what-is-the-algorithm-to-compute-the-amazon-s3-etag-for-a-file-larger-than-5gb#answer-19896823 + source_md5 = source_key.etag.split("-")[0] + if dest_key: + dest_md5 = dest_key.etag.split("-")[0] + else: + dest_md5 = None + if not dest_key: self.info("Copying {} to {}".format(source, destination)) bucket.copy_key(destination, self.config["bucket_name"], source) - elif source_key.etag == dest_key.etag: + elif source_md5 == dest_md5: self.warning( "{} already exists with the same content ({}), skipping copy".format( - destination, dest_key.etag)) + destination, dest_md5)) else: self.fatal( - "{} already exists with the different content (src: {}, dest: {}), aborting".format( + "{} already exists with the different content (src ETag: {}, dest ETag: {}), aborting".format( destination, source_key.etag, dest_key.etag)) return retry(copy_key, sleeptime=5, max_sleeptime=60, diff -Nru firefox-49.0~b6+build1/toolkit/components/extensions/Extension.jsm firefox-49.0~b7+build1/toolkit/components/extensions/Extension.jsm --- firefox-49.0~b6+build1/toolkit/components/extensions/Extension.jsm 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/components/extensions/Extension.jsm 2016-08-26 05:53:33.000000000 +0000 @@ -891,7 +891,7 @@ }; if (this.localeData) { - context.preprocessors.localize = this.localize.bind(this); + context.preprocessors.localize = (value, context) => this.localize(value); } let normalized = Schemas.normalize(this.manifest, "manifest.WebExtensionManifest", context); @@ -1503,6 +1503,6 @@ }, get name() { - return this.localize(this.manifest.name); + return this.manifest.name; }, }); diff -Nru firefox-49.0~b6+build1/toolkit/components/passwordmgr/nsLoginManagerPrompter.js firefox-49.0~b7+build1/toolkit/components/passwordmgr/nsLoginManagerPrompter.js --- firefox-49.0~b6+build1/toolkit/components/passwordmgr/nsLoginManagerPrompter.js 2016-08-23 06:51:16.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/components/passwordmgr/nsLoginManagerPrompter.js 2016-08-26 05:53:32.000000000 +0000 @@ -511,6 +511,7 @@ var checkboxLabel = null; var epicfail = false; var canAutologin = false; + var notifyObj; try { this.log("===== promptAuth called ====="); @@ -551,8 +552,8 @@ canRememberLogin = false; // if checkboxLabel is null, the checkbox won't be shown at all. - var notifyBox = this._getNotifyBox(); - if (canRememberLogin && !notifyBox) + notifyObj = this._getPopupNote() || this._getNotifyBox(); + if (canRememberLogin && !notifyObj) checkboxLabel = this._getLocalizedString("rememberPassword"); } catch (e) { // Ignore any errors and display the prompt anyway. @@ -574,7 +575,7 @@ // determine if the login should be saved. If there isn't a // notification box, only save the login if the user set the // checkbox to do so. - var rememberLogin = notifyBox ? canRememberLogin : checkbox.value; + var rememberLogin = notifyObj ? canRememberLogin : checkbox.value; if (!ok || !rememberLogin || epicfail) return ok; @@ -601,7 +602,6 @@ this.log("New login seen for " + username + " @ " + hostname + " (" + httpRealm + ")"); - let notifyObj = this._getPopupNote() || notifyBox; if (notifyObj) this._showSaveLoginNotification(notifyObj, newLogin); else @@ -609,7 +609,6 @@ } else if (password != selectedLogin.password) { this.log("Updating password for " + username + " @ " + hostname + " (" + httpRealm + ")"); - let notifyObj = this._getPopupNote() || notifyBox; if (notifyObj) this._showChangeLoginNotification(notifyObj, selectedLogin, newLogin); diff -Nru firefox-49.0~b6+build1/toolkit/components/passwordmgr/test/browser/browser.ini firefox-49.0~b7+build1/toolkit/components/passwordmgr/test/browser/browser.ini --- firefox-49.0~b6+build1/toolkit/components/passwordmgr/test/browser/browser.ini 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/components/passwordmgr/test/browser/browser.ini 2016-08-26 05:53:33.000000000 +0000 @@ -44,6 +44,8 @@ [browser_hasInsecureLoginForms_streamConverter.js] [browser_insecurePasswordWarning.js] [browser_notifications.js] +[browser_notifications_username.js] +[browser_notifications_password.js] [browser_notifications_2.js] [browser_passwordmgr_editing.js] skip-if = os == "linux" diff -Nru firefox-49.0~b6+build1/toolkit/components/passwordmgr/test/browser/browser_notifications.js firefox-49.0~b7+build1/toolkit/components/passwordmgr/test/browser/browser_notifications.js --- firefox-49.0~b6+build1/toolkit/components/passwordmgr/test/browser/browser_notifications.js 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/components/passwordmgr/test/browser/browser_notifications.js 2016-08-26 05:53:33.000000000 +0000 @@ -76,263 +76,3 @@ Services.logins.removeAllLogins(); } }); - -/** - * Test changing the username inside the doorhanger notification for passwords. - * - * We have to test combination of existing and non-existing logins both for - * the original one from the webpage and the final one used by the dialog. - * - * We also check switching to and from empty usernames. - */ -add_task(function* test_edit_username() { - let testCases = [{ - usernameInPage: "username", - usernameChangedTo: "newUsername", - }, { - usernameInPage: "username", - usernameInPageExists: true, - usernameChangedTo: "newUsername", - }, { - usernameInPage: "username", - usernameChangedTo: "newUsername", - usernameChangedToExists: true, - }, { - usernameInPage: "username", - usernameInPageExists: true, - usernameChangedTo: "newUsername", - usernameChangedToExists: true, - }, { - usernameInPage: "", - usernameChangedTo: "newUsername", - }, { - usernameInPage: "newUsername", - usernameChangedTo: "", - }, { - usernameInPage: "", - usernameChangedTo: "newUsername", - usernameChangedToExists: true, - }, { - usernameInPage: "newUsername", - usernameChangedTo: "", - usernameChangedToExists: true, - }]; - - for (let testCase of testCases) { - info("Test case: " + JSON.stringify(testCase)); - - // Create the pre-existing logins when needed. - if (testCase.usernameInPageExists) { - Services.logins.addLogin(LoginTestUtils.testData.formLogin({ - hostname: "https://example.com", - formSubmitURL: "https://example.com", - username: testCase.usernameInPage, - password: "old password", - })); - } - - if (testCase.usernameChangedToExists) { - Services.logins.addLogin(LoginTestUtils.testData.formLogin({ - hostname: "https://example.com", - formSubmitURL: "https://example.com", - username: testCase.usernameChangedTo, - password: "old password", - })); - } - - yield BrowserTestUtils.withNewTab({ - gBrowser, - url: "https://example.com/browser/toolkit/components/" + - "passwordmgr/test/browser/form_basic.html", - }, function* (browser) { - // Submit the form in the content page with the credentials from the test - // case. This will cause the doorhanger notification to be displayed. - let promiseShown = BrowserTestUtils.waitForEvent(PopupNotifications.panel, - "Shown"); - yield ContentTask.spawn(browser, testCase.usernameInPage, - function* (usernameInPage) { - let doc = content.document; - doc.getElementById("form-basic-username").value = usernameInPage; - doc.getElementById("form-basic-password").value = "password"; - doc.getElementById("form-basic").submit(); - }); - yield promiseShown; - - let notificationElement = PopupNotifications.panel.childNodes[0]; - // Modify the username in the dialog if requested. - if (testCase.usernameChangedTo) { - notificationElement.querySelector("#password-notification-username") - .setAttribute("value", testCase.usernameChangedTo); - } - - // We expect a modifyLogin notification if the final username used by the - // dialog exists in the logins database, otherwise an addLogin one. - let expectModifyLogin = testCase.usernameChangedTo - ? testCase.usernameChangedToExists - : testCase.usernameInPageExists; - - // Simulate the action on the notification to request the login to be - // saved, and wait for the data to be updated or saved based on the type - // of operation we expect. - let expectedNotification = expectModifyLogin ? "modifyLogin" : "addLogin"; - let promiseLogin = TestUtils.topicObserved("passwordmgr-storage-changed", - (_, data) => data == expectedNotification); - notificationElement.button.doCommand(); - let [result] = yield promiseLogin; - - // Check that the values in the database match the expected values. - let login = expectModifyLogin ? result.QueryInterface(Ci.nsIArray) - .queryElementAt(1, Ci.nsILoginInfo) - : result.QueryInterface(Ci.nsILoginInfo); - Assert.equal(login.username, testCase.usernameChangedTo || - testCase.usernameInPage); - Assert.equal(login.password, "password"); - }); - - // Clean up the database before the next test case is executed. - Services.logins.removeAllLogins(); - } -}); - -/** - * Test changing the password inside the doorhanger notification for passwords. - * - * We check the following cases: - * - Editing the password of a new login. - * - Editing the password of an existing login. - * - Changing both username and password to an existing login. - * - Changing the username to an existing login. - * - Editing username to an empty one and a new password. - * - * If both the username and password matches an already existing login, we should not - * update it's password, but only it's usage timestamp and count. - */ -add_task(function* test_edit_password() { - let testCases = [{ - usernameInPage: "username", - passwordInPage: "password", - passwordChangedTo: "newPassword", - timesUsed: 1, - }, { - usernameInPage: "username", - usernameInPageExists: true, - passwordInPage: "password", - passwordInStorage: "oldPassword", - passwordChangedTo: "newPassword", - timesUsed: 2, - }, { - usernameInPage: "username", - usernameChangedTo: "newUsername", - usernameChangedToExists: true, - passwordInPage: "password", - passwordChangedTo: "newPassword", - timesUsed: 2, - }, { - usernameInPage: "username", - usernameChangedTo: "newUsername", - usernameChangedToExists: true, - passwordInPage: "password", - passwordChangedTo: "password", - timesUsed: 2, - checkPasswordNotUpdated: true, - }, { - usernameInPage: "newUsername", - usernameChangedTo: "", - usernameChangedToExists: true, - passwordInPage: "password", - passwordChangedTo: "newPassword", - timesUsed: 2, - }]; - - for (let testCase of testCases) { - info("Test case: " + JSON.stringify(testCase)); - - // Create the pre-existing logins when needed. - if (testCase.usernameInPageExists) { - Services.logins.addLogin(LoginTestUtils.testData.formLogin({ - hostname: "https://example.com", - formSubmitURL: "https://example.com", - username: testCase.usernameInPage, - password: testCase.passwordInStorage, - })); - } - - if (testCase.usernameChangedToExists) { - Services.logins.addLogin(LoginTestUtils.testData.formLogin({ - hostname: "https://example.com", - formSubmitURL: "https://example.com", - username: testCase.usernameChangedTo, - password: testCase.passwordChangedTo, - })); - } - - yield BrowserTestUtils.withNewTab({ - gBrowser, - url: "https://example.com/browser/toolkit/components/" + - "passwordmgr/test/browser/form_basic.html", - }, function* (browser) { - // Submit the form in the content page with the credentials from the test - // case. This will cause the doorhanger notification to be displayed. - let promiseShown = BrowserTestUtils.waitForEvent(PopupNotifications.panel, - "popupshown"); - yield ContentTask.spawn(browser, testCase, - function* (testCase) { - let doc = content.document; - doc.getElementById("form-basic-username").value = testCase.usernameInPage; - doc.getElementById("form-basic-password").value = testCase.passwordInPage; - doc.getElementById("form-basic").submit(); - }); - yield promiseShown; - - let notificationElement = PopupNotifications.panel.childNodes[0]; - // Modify the username in the dialog if requested. - if (testCase.usernameChangedTo) { - notificationElement.querySelector("#password-notification-username") - .setAttribute("value", testCase.usernameChangedTo); - } - - // Modify the password in the dialog if requested. - if (testCase.passwordChangedTo) { - notificationElement.querySelector("#password-notification-password") - .setAttribute("value", testCase.passwordChangedTo); - } - - // We expect a modifyLogin notification if the final username used by the - // dialog exists in the logins database, otherwise an addLogin one. - let expectModifyLogin = typeof testCase.usernameChangedTo !== "undefined" - ? testCase.usernameChangedToExists - : testCase.usernameInPageExists; - - // Simulate the action on the notification to request the login to be - // saved, and wait for the data to be updated or saved based on the type - // of operation we expect. - let expectedNotification = expectModifyLogin ? "modifyLogin" : "addLogin"; - let promiseLogin = TestUtils.topicObserved("passwordmgr-storage-changed", - (_, data) => data == expectedNotification); - notificationElement.button.doCommand(); - let [result] = yield promiseLogin; - - // Check that the values in the database match the expected values. - let login = expectModifyLogin ? result.QueryInterface(Ci.nsIArray) - .queryElementAt(1, Ci.nsILoginInfo) - : result.QueryInterface(Ci.nsILoginInfo); - - Assert.equal(login.username, testCase.usernameChangedTo || - testCase.usernameInPage); - Assert.equal(login.password, testCase.passwordChangedTo || - testCase.passwordInPage); - - let meta = login.QueryInterface(Ci.nsILoginMetaInfo); - Assert.equal(meta.timesUsed, testCase.timesUsed); - - // Check that the password was not updated if the user is empty - if (testCase.checkPasswordNotUpdated) { - Assert.ok(meta.timeLastUsed > meta.timeCreated); - Assert.ok(meta.timeCreated == meta.timePasswordChanged); - } - }); - - // Clean up the database before the next test case is executed. - Services.logins.removeAllLogins(); - } -}); diff -Nru firefox-49.0~b6+build1/toolkit/components/passwordmgr/test/browser/browser_notifications_password.js firefox-49.0~b7+build1/toolkit/components/passwordmgr/test/browser/browser_notifications_password.js --- firefox-49.0~b6+build1/toolkit/components/passwordmgr/test/browser/browser_notifications_password.js 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/components/passwordmgr/test/browser/browser_notifications_password.js 2016-08-26 05:53:33.000000000 +0000 @@ -0,0 +1,142 @@ +/** + * Test changing the password inside the doorhanger notification for passwords. + * + * We check the following cases: + * - Editing the password of a new login. + * - Editing the password of an existing login. + * - Changing both username and password to an existing login. + * - Changing the username to an existing login. + * - Editing username to an empty one and a new password. + * + * If both the username and password matches an already existing login, we should not + * update it's password, but only it's usage timestamp and count. + */ +add_task(function* test_edit_password() { + let testCases = [{ + usernameInPage: "username", + passwordInPage: "password", + passwordChangedTo: "newPassword", + timesUsed: 1, + }, { + usernameInPage: "username", + usernameInPageExists: true, + passwordInPage: "password", + passwordInStorage: "oldPassword", + passwordChangedTo: "newPassword", + timesUsed: 2, + }, { + usernameInPage: "username", + usernameChangedTo: "newUsername", + usernameChangedToExists: true, + passwordInPage: "password", + passwordChangedTo: "newPassword", + timesUsed: 2, + }, { + usernameInPage: "username", + usernameChangedTo: "newUsername", + usernameChangedToExists: true, + passwordInPage: "password", + passwordChangedTo: "password", + timesUsed: 2, + checkPasswordNotUpdated: true, + }, { + usernameInPage: "newUsername", + usernameChangedTo: "", + usernameChangedToExists: true, + passwordInPage: "password", + passwordChangedTo: "newPassword", + timesUsed: 2, + }]; + + for (let testCase of testCases) { + info("Test case: " + JSON.stringify(testCase)); + + // Create the pre-existing logins when needed. + if (testCase.usernameInPageExists) { + Services.logins.addLogin(LoginTestUtils.testData.formLogin({ + hostname: "https://example.com", + formSubmitURL: "https://example.com", + username: testCase.usernameInPage, + password: testCase.passwordInStorage, + })); + } + + if (testCase.usernameChangedToExists) { + Services.logins.addLogin(LoginTestUtils.testData.formLogin({ + hostname: "https://example.com", + formSubmitURL: "https://example.com", + username: testCase.usernameChangedTo, + password: testCase.passwordChangedTo, + })); + } + + yield BrowserTestUtils.withNewTab({ + gBrowser, + url: "https://example.com/browser/toolkit/components/" + + "passwordmgr/test/browser/form_basic.html", + }, function* (browser) { + // Submit the form in the content page with the credentials from the test + // case. This will cause the doorhanger notification to be displayed. + let promiseShown = BrowserTestUtils.waitForEvent(PopupNotifications.panel, + "popupshown"); + yield ContentTask.spawn(browser, testCase, + function* (testCase) { + let doc = content.document; + doc.getElementById("form-basic-username").value = testCase.usernameInPage; + doc.getElementById("form-basic-password").value = testCase.passwordInPage; + doc.getElementById("form-basic").submit(); + }); + yield promiseShown; + + let notificationElement = PopupNotifications.panel.childNodes[0]; + // Modify the username in the dialog if requested. + if (testCase.usernameChangedTo) { + notificationElement.querySelector("#password-notification-username") + .setAttribute("value", testCase.usernameChangedTo); + } + + // Modify the password in the dialog if requested. + if (testCase.passwordChangedTo) { + notificationElement.querySelector("#password-notification-password") + .setAttribute("value", testCase.passwordChangedTo); + } + + // We expect a modifyLogin notification if the final username used by the + // dialog exists in the logins database, otherwise an addLogin one. + let expectModifyLogin = typeof testCase.usernameChangedTo !== "undefined" + ? testCase.usernameChangedToExists + : testCase.usernameInPageExists; + + // Simulate the action on the notification to request the login to be + // saved, and wait for the data to be updated or saved based on the type + // of operation we expect. + let expectedNotification = expectModifyLogin ? "modifyLogin" : "addLogin"; + let promiseLogin = TestUtils.topicObserved("passwordmgr-storage-changed", + (_, data) => data == expectedNotification); + notificationElement.button.doCommand(); + let [result] = yield promiseLogin; + + // Check that the values in the database match the expected values. + let login = expectModifyLogin ? result.QueryInterface(Ci.nsIArray) + .queryElementAt(1, Ci.nsILoginInfo) + : result.QueryInterface(Ci.nsILoginInfo); + + Assert.equal(login.username, testCase.usernameChangedTo || + testCase.usernameInPage); + Assert.equal(login.password, testCase.passwordChangedTo || + testCase.passwordInPage); + + let meta = login.QueryInterface(Ci.nsILoginMetaInfo); + Assert.equal(meta.timesUsed, testCase.timesUsed); + + // Check that the password was not updated if the user is empty + if (testCase.checkPasswordNotUpdated) { + Assert.ok(meta.timeLastUsed > meta.timeCreated); + Assert.ok(meta.timeCreated == meta.timePasswordChanged); + } + }); + + // Clean up the database before the next test case is executed. + Services.logins.removeAllLogins(); + } +}); diff -Nru firefox-49.0~b6+build1/toolkit/components/passwordmgr/test/browser/browser_notifications_username.js firefox-49.0~b7+build1/toolkit/components/passwordmgr/test/browser/browser_notifications_username.js --- firefox-49.0~b6+build1/toolkit/components/passwordmgr/test/browser/browser_notifications_username.js 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/components/passwordmgr/test/browser/browser_notifications_username.js 2016-08-26 05:53:32.000000000 +0000 @@ -0,0 +1,116 @@ +/** + * Test changing the username inside the doorhanger notification for passwords. + * + * We have to test combination of existing and non-existing logins both for + * the original one from the webpage and the final one used by the dialog. + * + * We also check switching to and from empty usernames. + */ +add_task(function* test_edit_username() { + let testCases = [{ + usernameInPage: "username", + usernameChangedTo: "newUsername", + }, { + usernameInPage: "username", + usernameInPageExists: true, + usernameChangedTo: "newUsername", + }, { + usernameInPage: "username", + usernameChangedTo: "newUsername", + usernameChangedToExists: true, + }, { + usernameInPage: "username", + usernameInPageExists: true, + usernameChangedTo: "newUsername", + usernameChangedToExists: true, + }, { + usernameInPage: "", + usernameChangedTo: "newUsername", + }, { + usernameInPage: "newUsername", + usernameChangedTo: "", + }, { + usernameInPage: "", + usernameChangedTo: "newUsername", + usernameChangedToExists: true, + }, { + usernameInPage: "newUsername", + usernameChangedTo: "", + usernameChangedToExists: true, + }]; + + for (let testCase of testCases) { + info("Test case: " + JSON.stringify(testCase)); + + // Create the pre-existing logins when needed. + if (testCase.usernameInPageExists) { + Services.logins.addLogin(LoginTestUtils.testData.formLogin({ + hostname: "https://example.com", + formSubmitURL: "https://example.com", + username: testCase.usernameInPage, + password: "old password", + })); + } + + if (testCase.usernameChangedToExists) { + Services.logins.addLogin(LoginTestUtils.testData.formLogin({ + hostname: "https://example.com", + formSubmitURL: "https://example.com", + username: testCase.usernameChangedTo, + password: "old password", + })); + } + + yield BrowserTestUtils.withNewTab({ + gBrowser, + url: "https://example.com/browser/toolkit/components/" + + "passwordmgr/test/browser/form_basic.html", + }, function* (browser) { + // Submit the form in the content page with the credentials from the test + // case. This will cause the doorhanger notification to be displayed. + let promiseShown = BrowserTestUtils.waitForEvent(PopupNotifications.panel, + "Shown"); + yield ContentTask.spawn(browser, testCase.usernameInPage, + function* (usernameInPage) { + let doc = content.document; + doc.getElementById("form-basic-username").value = usernameInPage; + doc.getElementById("form-basic-password").value = "password"; + doc.getElementById("form-basic").submit(); + }); + yield promiseShown; + + let notificationElement = PopupNotifications.panel.childNodes[0]; + // Modify the username in the dialog if requested. + if (testCase.usernameChangedTo) { + notificationElement.querySelector("#password-notification-username") + .setAttribute("value", testCase.usernameChangedTo); + } + + // We expect a modifyLogin notification if the final username used by the + // dialog exists in the logins database, otherwise an addLogin one. + let expectModifyLogin = testCase.usernameChangedTo + ? testCase.usernameChangedToExists + : testCase.usernameInPageExists; + + // Simulate the action on the notification to request the login to be + // saved, and wait for the data to be updated or saved based on the type + // of operation we expect. + let expectedNotification = expectModifyLogin ? "modifyLogin" : "addLogin"; + let promiseLogin = TestUtils.topicObserved("passwordmgr-storage-changed", + (_, data) => data == expectedNotification); + notificationElement.button.doCommand(); + let [result] = yield promiseLogin; + + // Check that the values in the database match the expected values. + let login = expectModifyLogin ? result.QueryInterface(Ci.nsIArray) + .queryElementAt(1, Ci.nsILoginInfo) + : result.QueryInterface(Ci.nsILoginInfo); + Assert.equal(login.username, testCase.usernameChangedTo || + testCase.usernameInPage); + Assert.equal(login.password, "password"); + }); + + // Clean up the database before the next test case is executed. + Services.logins.removeAllLogins(); + } +}); diff -Nru firefox-49.0~b6+build1/toolkit/components/passwordmgr/test/prompt_common.js firefox-49.0~b7+build1/toolkit/components/passwordmgr/test/prompt_common.js --- firefox-49.0~b6+build1/toolkit/components/passwordmgr/test/prompt_common.js 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/components/passwordmgr/test/prompt_common.js 2016-08-26 05:53:33.000000000 +0000 @@ -1,3 +1,10 @@ +/** + * NOTE: + * This file is currently only being used for tests which haven't been + * fixed to work with e10s. Favor using the `prompt_common.js` file that + * is in `toolkit/components/prompts/test/` instead. + */ + var Ci = SpecialPowers.Ci; ok(Ci != null, "Access Ci"); var Cc = SpecialPowers.Cc; diff -Nru firefox-49.0~b6+build1/toolkit/components/telemetry/Histograms.json firefox-49.0~b7+build1/toolkit/components/telemetry/Histograms.json --- firefox-49.0~b6+build1/toolkit/components/telemetry/Histograms.json 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/components/telemetry/Histograms.json 2016-08-26 05:53:33.000000000 +0000 @@ -4448,6 +4448,39 @@ "releaseChannelCollection": "opt-out", "description": "Whether the homepage was imported during browser migration. Only available on release builds during firstrun." }, + "FX_MIGRATION_BOOKMARKS_IMPORT_MS": { + "bug_numbers": [1289436], + "alert_emails": ["gijs@mozilla.com"], + "expires_in_version": "54", + "kind": "exponential", + "n_buckets": 70, + "high": 100000, + "releaseChannelCollection": "opt-out", + "keyed": true, + "description": "How long it took to import bookmarks from another browser, keyed by the name of the browser." + }, + "FX_MIGRATION_HISTORY_IMPORT_MS": { + "bug_numbers": [1289436], + "alert_emails": ["gijs@mozilla.com"], + "expires_in_version": "54", + "kind": "exponential", + "n_buckets": 70, + "high": 100000, + "releaseChannelCollection": "opt-out", + "keyed": true, + "description": "How long it took to import history from another browser, keyed by the name of the browser." + }, + "FX_MIGRATION_LOGINS_IMPORT_MS": { + "bug_numbers": [1289436], + "alert_emails": ["gijs@mozilla.com"], + "expires_in_version": "54", + "kind": "exponential", + "n_buckets": 70, + "high": 100000, + "releaseChannelCollection": "opt-out", + "keyed": true, + "description": "How long it took to import logins (passwords) from another browser, keyed by the name of the browser." + }, "FX_STARTUP_MIGRATION_BROWSER_COUNT": { "bug_numbers": [1275114], "alert_emails": ["gijs@mozilla.com"], @@ -4466,6 +4499,34 @@ "releaseChannelCollection": "opt-out", "description": "The browser that was the default on the initial profile migration. The values correspond to the internal browser ID (see MigrationUtils.jsm)" }, + "FX_STARTUP_MIGRATION_AUTOMATED_IMPORT_PROCESS_SUCCESS": { + "bug_numbers": [1271775], + "alert_emails": ["gijs@mozilla.com"], + "expires_in_version": "53", + "kind": "enumerated", + "n_values": 27, + "releaseChannelCollection": "opt-out", + "description": "Where automatic migration was attempted, indicates to what degree we succeeded. Values 0-25 indicate progress through the automatic migration sequence, with 25 indicating the migration finished. 26 is only used when the migration produced errors before it finished." + }, + "FX_STARTUP_MIGRATION_AUTOMATED_IMPORT_UNDO": { + "bug_numbers": [1283565], + "alert_emails": ["gijs@mozilla.com"], + "expires_in_version": "53", + "kind": "enumerated", + "n_values": 31, + "releaseChannelCollection": "opt-out", + "description": "Where undo of the automatic migration was attempted, indicates to what degree we succeeded to undo. 0 means we started to undo, 5 means we bailed out from the undo because it was not possible to complete it (there was nothing to undo or the user was signed in to sync). All higher values indicate progression through the undo sequence, with 30 indicating we finished the undo without exceptions in the middle." + }, + "FX_STARTUP_MIGRATION_UNDO_REASON": { + "bug_numbers": [1289906], + "alert_emails": ["gijs@mozilla.com"], + "expires_in_version": "54", + "keyed": true, + "kind": "enumerated", + "n_values": 10, + "releaseChannelCollection": "opt-out", + "description": "Why the undo functionality of an automatic migration was disabled: 0 means we used undo, 1 means the user signed in to sync, 2 means the user created/modified a password, 3 means the user created/modified a bookmark (item or folder), 4 means we showed an undo option repeatedly and the user did not use it, 5 means we showed an undo option and the user actively elected to keep the data. The whole thing is keyed to the identifiers of different browsers (so 'chrome', 'ie', 'edge', 'safari', etc.)." + }, "FX_STARTUP_EXTERNAL_CONTENT_HANDLER": { "bug_numbers": [1276027], "alert_emails": ["jaws@mozilla.com"], diff -Nru firefox-49.0~b6+build1/toolkit/library/dummydll/dummydll.cpp firefox-49.0~b7+build1/toolkit/library/dummydll/dummydll.cpp --- firefox-49.0~b6+build1/toolkit/library/dummydll/dummydll.cpp 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/library/dummydll/dummydll.cpp 2016-08-26 05:53:34.000000000 +0000 @@ -0,0 +1,17 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include + +BOOL WINAPI DllMain( + HANDLE hModule, + DWORD dwReason, + LPVOID lpvReserved +) +{ + if (dwReason == DLL_PROCESS_ATTACH) { + ::DisableThreadLibraryCalls((HMODULE)hModule); + } + return TRUE; +} diff -Nru firefox-49.0~b6+build1/toolkit/library/dummydll/moz.build firefox-49.0~b7+build1/toolkit/library/dummydll/moz.build --- firefox-49.0~b6+build1/toolkit/library/dummydll/moz.build 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/library/dummydll/moz.build 2016-08-26 05:53:34.000000000 +0000 @@ -0,0 +1,19 @@ +# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# Bug 1294650 - populate our install with a shim dll to work around a +# 3rd party code injection crash. + +SOURCES += [ + 'dummydll.cpp', +] + +if CONFIG['CPU_ARCH'] == 'x86_64': + GeckoSharedLibrary('qipcap64') +else: + GeckoSharedLibrary('qipcap') + +NO_VISIBILITY_FLAGS = True diff -Nru firefox-49.0~b6+build1/toolkit/library/moz.build firefox-49.0~b7+build1/toolkit/library/moz.build --- firefox-49.0~b6+build1/toolkit/library/moz.build 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/library/moz.build 2016-08-26 05:53:34.000000000 +0000 @@ -96,6 +96,9 @@ DIRS += ['gtest'] +if CONFIG['OS_ARCH'] == 'WINNT': + DIRS += ['dummydll'] + # js needs to come after xul for now, because it is an archive and its content # is discarded when it comes first. USE_LIBS += [ diff -Nru firefox-49.0~b6+build1/toolkit/mozapps/extensions/docs/SystemAddons.rst firefox-49.0~b7+build1/toolkit/mozapps/extensions/docs/SystemAddons.rst --- firefox-49.0~b6+build1/toolkit/mozapps/extensions/docs/SystemAddons.rst 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/mozapps/extensions/docs/SystemAddons.rst 2016-08-26 05:53:34.000000000 +0000 @@ -10,7 +10,8 @@ -------------- System add-ons: -* Are add-ons that ship with Firefox and cannot be disabled +* Are add-ons that ship with Firefox, are hidden from the UI, and cannot be + disabled * Can be updated by Firefox depending on the AUS response to Firefox's update request * Are stored in two locations: @@ -56,7 +57,7 @@ - + @@ -87,11 +88,10 @@ After receiving the update response, Firefox modifies the **update** add-ons according to the following algorithm: -1. If the ```` tag is missing in the response, - **disable all system add-ons**, including both the **update** and **default** - sets. -2. If no add-ons were specified in the response (i.e. the ```` tag has - no children but is present), do nothing and finish. +1. If the ```` tag is empty (````) in the response, + **remove all system add-on updates**. +2. If no add-ons were specified in the response (i.e. the ```` tag + is not present), do nothing and finish. 3. If the **update** add-on set is equal to the set of add-ons specified in the update response, do nothing and finish. 4. If the set of **default** add-ons is equal to the set of add-ons specified in @@ -116,7 +116,6 @@ 6. Once all downloaded add-ons are validated, install them into the profile directory as part of the **update** set. -7. Disable any **default** add-ons that were not present in the update response. Notes on the update process: @@ -128,44 +127,45 @@ into and how the protocol described above handles them. For simplicity, unless otherwise specified, all examples assume that there are -two system add-ons in existence: **Loop** and **Pocket**. +two system add-ons in existence: **FlyWeb** and **Pocket**. Basic ~~~~~ -A user has Firefox 45, which shipped with Loop 1.0 and Pocket 1.0. We want to -update users to Loop 2.0. AUS sends out the following update response: +A user has Firefox 45, which shipped with FlyWeb 1.0 and Pocket 1.0. We want to +update users to FlyWeb 2.0. AUS sends out the following update response: .. code-block:: xml - + -Firefox will download Loop 2.0 and Pocket 1.0 and store them in the profile directory. +Firefox will download FlyWeb 2.0 and Pocket 1.0 and store them in the profile directory. Missing Add-on ~~~~~~~~~~~~~~ -A user has Firefox 45, which shipped with Loop 1.0 and Pocket 1.0. We want to -update users to Loop 2.0, but accidentally forget to specify Pocket in the +A user has Firefox 45, which shipped with FlyWeb 1.0 and Pocket 1.0. We want to +update users to FlyWeb 2.0, but accidentally forget to specify Pocket in the update response. AUS sends out the following: .. code-block:: xml - + -Firefox will download Loop 2.0 and store it in the profile directory. It will -disable Pocket completely. +Firefox will download FlyWeb 2.0 and store it in the profile directory. Pocket +1.0 from the **default** location will be used. -Disable all system add-ons -~~~~~~~~~~~~~~~~~~~~~~~~~~ -A response from AUS with an empty add-on set will *disable all system add-ons*: +Remove all system add-on updates +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +A response from AUS with an empty add-on set will *remove all system add-on +updates*: .. code-block:: xml @@ -175,19 +175,19 @@ Rollout ~~~~~~~ -A user has Firefox 45, which shipped with Loop 1.0 and Pocket 1.0. We want to -rollout Loop 2.0 at a 10% sample rate. 10% of the time, AUS sends out: +A user has Firefox 45, which shipped with FlyWeb 1.0 and Pocket 1.0. We want to +rollout FlyWeb 2.0 at a 10% sample rate. 10% of the time, AUS sends out: .. code-block:: xml - + -With this response, Firefox will download Pocket 1.0 and Loop 2.0 and install +With this response, Firefox will download Pocket 1.0 and FlyWeb 2.0 and install them into the profile directory. The other 90% of the time, AUS sends out an empty response: @@ -197,44 +197,28 @@ With the empty response, Firefox will not make any changes. This means users who -haven’t seen the 10% update response will stay on Loop 1.0, and users who have -seen it will stay on Loop 2.0. +haven’t seen the 10% update response will stay on FlyWeb 1.0, and users who have +seen it will stay on FlyWeb 2.0. Once we’re happy with the rollout and want to switch to 100%, AUS will send the -10% update response to 100% of users, upgrading everyone to Loop 2.0. +10% update response to 100% of users, upgrading everyone to FlyWeb 2.0. Rollback ~~~~~~~~ This example continues from the “Rollout” example. If, during the 10% rollout, -we find a major issue with Loop 2.0, we want to roll all users back to Loop 1.0. +we find a major issue with FlyWeb 2.0, we want to roll all users back to FlyWeb 1.0. AUS sends out the following: .. code-block:: xml - + -For users who have updated, Firefox will download Loop 1.0 and Pocket 1.0 and +For users who have updated, Firefox will download FlyWeb 1.0 and Pocket 1.0 and install them into the profile directory. For users that haven’t yet updated, Firefox will see that the **default** add-on set matches the set in the update ping and clear the **update** add-on set. - -Disable an Add-on -~~~~~~~~~~~~~~~~~ -A user has Firefox 45, with Pocket 1.0 and Loop 1.0. Loop 1.0 ends up having a -serious bug, and we want to disable the add-on completely while we work on a -fix. AUS sends out the following: - -.. code-block:: xml - - - - - - - -Firefox will download Pocket 1.0 and install it to the profile directory, and disable Loop. diff -Nru firefox-49.0~b6+build1/toolkit/mozapps/extensions/internal/XPIProvider.jsm firefox-49.0~b7+build1/toolkit/mozapps/extensions/internal/XPIProvider.jsm --- firefox-49.0~b6+build1/toolkit/mozapps/extensions/internal/XPIProvider.jsm 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/mozapps/extensions/internal/XPIProvider.jsm 2016-08-26 05:53:34.000000000 +0000 @@ -3044,7 +3044,6 @@ } // Download all the add-ons - // Bug 1204158: If we already have some of these locally then just use those let downloadAddon = Task.async(function*(item) { try { let sourceAddon = updatedAddons.get(item.spec.id); diff -Nru firefox-49.0~b6+build1/toolkit/mozapps/extensions/internal/XPIProviderUtils.js firefox-49.0~b7+build1/toolkit/mozapps/extensions/internal/XPIProviderUtils.js --- firefox-49.0~b6+build1/toolkit/mozapps/extensions/internal/XPIProviderUtils.js 2016-08-23 06:51:16.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/mozapps/extensions/internal/XPIProviderUtils.js 2016-08-26 05:53:33.000000000 +0000 @@ -2034,14 +2034,10 @@ let addons = currentAddons.get(KEY_APP_SYSTEM_ADDONS) || new Map(); let hideLocation; - if (systemAddonLocation.isActive() && systemAddonLocation.isValid(addons)) { - // Hide the system add-on defaults - logger.info("Hiding the default system add-ons."); - hideLocation = KEY_APP_SYSTEM_DEFAULTS; - } - else { - // Hide the system add-on updates - logger.info("Hiding the updated system add-ons."); + + if (!systemAddonLocation.isValid(addons)) { + // Hide the system add-on updates if any are invalid. + logger.info("One or more updated system add-ons invalid, falling back to defaults."); hideLocation = KEY_APP_SYSTEM_ADDONS; } diff -Nru firefox-49.0~b6+build1/toolkit/mozapps/extensions/nsBlocklistService.js firefox-49.0~b7+build1/toolkit/mozapps/extensions/nsBlocklistService.js --- firefox-49.0~b6+build1/toolkit/mozapps/extensions/nsBlocklistService.js 2016-08-23 06:51:16.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/mozapps/extensions/nsBlocklistService.js 2016-08-26 05:53:33.000000000 +0000 @@ -1385,8 +1385,15 @@ // If the add-on is already disabled for some reason then don't warn // about it - if (!addon.isActive) + if (!addon.isActive) { + // But mark it as softblocked if necessary. Note that we avoid setting + // softDisabled at the same time as userDisabled to make it clear + // which was the original cause of the add-on becoming disabled in a + // way that the user can change. + if (state == Ci.nsIBlocklistService.STATE_SOFTBLOCKED && !addon.userDisabled) + addon.softDisabled = true; continue; + } addonList.push({ name: addon.name, diff -Nru firefox-49.0~b6+build1/toolkit/mozapps/extensions/test/xpcshell/data/test_softblocked1.xml firefox-49.0~b7+build1/toolkit/mozapps/extensions/test/xpcshell/data/test_softblocked1.xml --- firefox-49.0~b6+build1/toolkit/mozapps/extensions/test/xpcshell/data/test_softblocked1.xml 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/mozapps/extensions/test/xpcshell/data/test_softblocked1.xml 2016-08-26 05:53:33.000000000 +0000 @@ -0,0 +1,9 @@ + + + + + + + + + diff -Nru firefox-49.0~b6+build1/toolkit/mozapps/extensions/test/xpcshell/test_bug455906.js firefox-49.0~b7+build1/toolkit/mozapps/extensions/test/xpcshell/test_bug455906.js --- firefox-49.0~b6+build1/toolkit/mozapps/extensions/test/xpcshell/test_bug455906.js 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/mozapps/extensions/test/xpcshell/test_bug455906.js 2016-08-26 05:53:34.000000000 +0000 @@ -342,6 +342,7 @@ // The blocked add-on should have changed to soft disabled do_check_eq(check_addon_state(addons[5]), "true,true,false"); + do_check_eq(check_addon_state(addons[6]), "true,true,true"); do_check_eq(check_plugin_state(PLUGINS[5]), "true,false"); // These should have been unchanged @@ -349,7 +350,6 @@ do_check_eq(check_addon_state(addons[1]), "false,false,false"); do_check_eq(check_addon_state(addons[3]), "true,true,false"); do_check_eq(check_addon_state(addons[4]), "false,false,false"); - do_check_eq(check_addon_state(addons[6]), "false,false,true"); do_check_eq(check_plugin_state(PLUGINS[0]), "true,false"); do_check_eq(check_plugin_state(PLUGINS[1]), "false,false"); do_check_eq(check_plugin_state(PLUGINS[3]), "true,false"); diff -Nru firefox-49.0~b6+build1/toolkit/mozapps/extensions/test/xpcshell/test_softblocked.js firefox-49.0~b7+build1/toolkit/mozapps/extensions/test/xpcshell/test_softblocked.js --- firefox-49.0~b6+build1/toolkit/mozapps/extensions/test/xpcshell/test_softblocked.js 1970-01-01 00:00:00.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/mozapps/extensions/test/xpcshell/test_softblocked.js 2016-08-26 05:53:34.000000000 +0000 @@ -0,0 +1,109 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +const { utils: Cu, interfaces: Ci, classes: Cc, results: Cr } = Components; + +const URI_EXTENSION_BLOCKLIST_DIALOG = "chrome://mozapps/content/extensions/blocklist.xul"; + +Cu.import("resource://gre/modules/NetUtil.jsm"); +Cu.import("resource://testing-common/MockRegistrar.jsm"); + +// Allow insecure updates +Services.prefs.setBoolPref("extensions.checkUpdateSecurity", false) + +const testserver = createHttpServer(); +gPort = testserver.identity.primaryPort; +testserver.registerDirectory("/data/", do_get_file("data")); + +// Don't need the full interface, attempts to call other methods will just +// throw which is just fine +var WindowWatcher = { + openWindow: function(parent, url, name, features, openArgs) { + // Should be called to list the newly blocklisted items + do_check_eq(url, URI_EXTENSION_BLOCKLIST_DIALOG); + + // Simulate auto-disabling any softblocks + var list = openArgs.wrappedJSObject.list; + list.forEach(function(aItem) { + if (!aItem.blocked) + aItem.disable = true; + }); + + //run the code after the blocklist is closed + Services.obs.notifyObservers(null, "addon-blocklist-closed", null); + }, + + QueryInterface: function(iid) { + if (iid.equals(Ci.nsIWindowWatcher) + || iid.equals(Ci.nsISupports)) + return this; + + throw Cr.NS_ERROR_NO_INTERFACE; + } +}; + +MockRegistrar.register("@mozilla.org/embedcomp/window-watcher;1", WindowWatcher); + +const profileDir = gProfD.clone(); +profileDir.append("extensions"); + +function load_blocklist(aFile) { + return new Promise((resolve, reject) => { + Services.obs.addObserver(function() { + Services.obs.removeObserver(arguments.callee, "blocklist-updated"); + + resolve(); + }, "blocklist-updated", false); + + Services.prefs.setCharPref("extensions.blocklist.url", `http://localhost:${gPort}/data/${aFile}`); + var blocklist = Cc["@mozilla.org/extensions/blocklist;1"]. + getService(Ci.nsITimerCallback); + blocklist.notify(null); + }); +} + +function run_test() { + createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1"); + run_next_test(); +} + +// Tests that an appDisabled add-on that becomes softBlocked remains disabled +// when becoming appEnabled +add_task(function* () { + writeInstallRDFForExtension({ + id: "softblock1@tests.mozilla.org", + version: "1.0", + name: "Softblocked add-on", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "2", + maxVersion: "3" + }] + }, profileDir); + + startupManager(); + + let s1 = yield promiseAddonByID("softblock1@tests.mozilla.org"); + + // Make sure to mark it as previously enabled. + s1.userDisabled = false; + + do_check_false(s1.softDisabled); + do_check_true(s1.appDisabled); + do_check_false(s1.isActive); + + yield load_blocklist("test_softblocked1.xml"); + + do_check_true(s1.softDisabled); + do_check_true(s1.appDisabled); + do_check_false(s1.isActive); + + yield promiseRestartManager("2"); + + s1 = yield promiseAddonByID("softblock1@tests.mozilla.org"); + + do_check_true(s1.softDisabled); + do_check_false(s1.appDisabled); + do_check_false(s1.isActive); +}); diff -Nru firefox-49.0~b6+build1/toolkit/mozapps/extensions/test/xpcshell/test_system_reset.js firefox-49.0~b7+build1/toolkit/mozapps/extensions/test/xpcshell/test_system_reset.js --- firefox-49.0~b6+build1/toolkit/mozapps/extensions/test/xpcshell/test_system_reset.js 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/mozapps/extensions/test/xpcshell/test_system_reset.js 2016-08-26 05:53:33.000000000 +0000 @@ -4,7 +4,7 @@ BootstrapMonitor.init(); -const featureDir = FileUtils.getDir("ProfD", ["features"]); +const updatesDir = FileUtils.getDir("ProfD", ["features"]); // Build the test sets var dir = FileUtils.getDir("ProfD", ["sysfeatures", "app1"], true); @@ -30,17 +30,24 @@ return uuidGen.generateUUID().toString(); } -function* check_installed(inProfile, ...versions) { - let expectedDir = inProfile ? featureDir : distroDir; - - for (let i = 0; i < versions.length; i++) { +function* check_installed(conditions) { + for (let i = 0; i < conditions.length; i++) { + let condition = conditions[i]; let id = "system" + (i + 1) + "@tests.mozilla.org"; let addon = yield promiseAddonByID(id); - if (versions[i]) { + if (!("isUpgrade" in condition) || !("version" in condition)) { + throw Error("condition must contain isUpgrade and version"); + } + let isUpgrade = conditions[i].isUpgrade; + let version = conditions[i].version; + + let expectedDir = isUpgrade ? updatesDir : distroDir; + + if (version) { // Add-on should be installed do_check_neq(addon, null); - do_check_eq(addon.version, versions[i]); + do_check_eq(addon.version, version); do_check_true(addon.isActive); do_check_false(addon.foreignInstall); do_check_false(hasFlag(addon.permissions, AddonManager.PERM_CAN_UPGRADE)); @@ -58,15 +65,15 @@ do_check_true(uri instanceof AM_Ci.nsIFileURL); do_check_eq(uri.file.path, file.path); - if (inProfile) { + if (isUpgrade) { do_check_eq(addon.signedState, AddonManager.SIGNEDSTATE_SYSTEM); } // Verify the add-on actually started - BootstrapMonitor.checkAddonStarted(id, versions[i]); + BootstrapMonitor.checkAddonStarted(id, version); } else { - if (inProfile) { + if (isUpgrade) { // Add-on should not be installed do_check_eq(addon, null); } @@ -89,9 +96,15 @@ add_task(function* test_missing_app_dir() { startupManager(); - yield check_installed(false, null, null, null); + let conditions = [ + { isUpgrade: false, version: null }, + { isUpgrade: false, version: null }, + { isUpgrade: false, version: null }, + ]; + + yield check_installed(conditions); - do_check_false(featureDir.exists()); + do_check_false(updatesDir.exists()); yield promiseShutdownManager(); }); @@ -102,9 +115,15 @@ distroDir.leafName = "app1"; startupManager(); - yield check_installed(false, "1.0", "1.0", null); + let conditions = [ + { isUpgrade: false, version: "1.0" }, + { isUpgrade: false, version: "1.0" }, + { isUpgrade: false, version: null }, + ]; + + yield check_installed(conditions); - do_check_false(featureDir.exists()); + do_check_false(updatesDir.exists()); yield promiseShutdownManager(); }); @@ -115,9 +134,15 @@ distroDir.leafName = "app2"; startupManager(); - yield check_installed(false, "2.0", null, "1.0"); + let conditions = [ + { isUpgrade: false, version: "2.0" }, + { isUpgrade: false, version: null }, + { isUpgrade: false, version: "1.0" }, + ]; - do_check_false(featureDir.exists()); + yield check_installed(conditions); + + do_check_false(updatesDir.exists()); yield promiseShutdownManager(); }); @@ -128,9 +153,15 @@ distroDir.leafName = "app1"; startupManager(); - yield check_installed(false, "1.0", "1.0", null); + let conditions = [ + { isUpgrade: false, version: "1.0" }, + { isUpgrade: false, version: "1.0" }, + { isUpgrade: false, version: null }, + ]; + + yield check_installed(conditions); - do_check_false(featureDir.exists()); + do_check_false(updatesDir.exists()); yield promiseShutdownManager(); }); @@ -140,24 +171,24 @@ // Create a random dir to install into let dirname = makeUUID(); FileUtils.getDir("ProfD", ["features", dirname], true); - featureDir.append(dirname); + updatesDir.append(dirname); // Copy in the system add-ons - let file = do_get_file("data/system_addons/system2_1.xpi"); - file.copyTo(featureDir, "system2@tests.mozilla.org.xpi"); - file = do_get_file("data/system_addons/system3_1.xpi"); - file.copyTo(featureDir, "system3@tests.mozilla.org.xpi"); + let file = do_get_file("data/system_addons/system2_2.xpi"); + file.copyTo(updatesDir, "system2@tests.mozilla.org.xpi"); + file = do_get_file("data/system_addons/system3_2.xpi"); + file.copyTo(updatesDir, "system3@tests.mozilla.org.xpi"); // Inject it into the system set let addonSet = { schema: 1, - directory: featureDir.leafName, + directory: updatesDir.leafName, addons: { "system2@tests.mozilla.org": { - version: "1.0" + version: "2.0" }, "system3@tests.mozilla.org": { - version: "1.0" + version: "2.0" }, } }; @@ -165,7 +196,13 @@ startupManager(false); - yield check_installed(true, null, "1.0", "1.0"); + let conditions = [ + { isUpgrade: false, version: "1.0" }, + { isUpgrade: true, version: "2.0" }, + { isUpgrade: true, version: "2.0" }, + ]; + + yield check_installed(conditions); yield promiseShutdownManager(); }); @@ -176,7 +213,13 @@ gAppInfo.inSafeMode = true; startupManager(false); - yield check_installed(false, "1.0", "1.0", null); + let conditions = [ + { isUpgrade: false, version: "1.0" }, + { isUpgrade: false, version: "1.0" }, + { isUpgrade: false, version: null }, + ]; + + yield check_installed(conditions); yield promiseShutdownManager(); }); @@ -186,7 +229,13 @@ gAppInfo.inSafeMode = false; startupManager(false); - yield check_installed(true, null, "1.0", "1.0"); + let conditions = [ + { isUpgrade: false, version: "1.0" }, + { isUpgrade: true, version: "2.0" }, + { isUpgrade: true, version: "2.0" }, + ]; + + yield check_installed(conditions); yield promiseShutdownManager(); }); @@ -194,19 +243,25 @@ // An additional add-on in the directory should be ignored add_task(function* test_skips_additional() { // Copy in the system add-ons - let file = do_get_file("data/system_addons/system1_1.xpi"); - file.copyTo(featureDir, "system1@tests.mozilla.org.xpi"); + let file = do_get_file("data/system_addons/system4_1.xpi"); + file.copyTo(updatesDir, "system4@tests.mozilla.org.xpi"); startupManager(false); - yield check_installed(true, null, "1.0", "1.0"); + let conditions = [ + { isUpgrade: false, version: "1.0" }, + { isUpgrade: true, version: "2.0" }, + { isUpgrade: true, version: "2.0" }, + ]; + + yield check_installed(conditions); yield promiseShutdownManager(); }); // Missing add-on should revert to the default set add_task(function* test_revert() { - manuallyUninstall(featureDir, "system2@tests.mozilla.org"); + manuallyUninstall(updatesDir, "system2@tests.mozilla.org"); // With the add-on physically gone from disk we won't see uninstall events BootstrapMonitor.clear("system2@tests.mozilla.org"); @@ -215,19 +270,31 @@ // With system add-on 2 gone the updated set is now invalid so it reverts to // the default set which is system add-ons 1 and 2. - yield check_installed(false, "1.0", "1.0", null); + let conditions = [ + { isUpgrade: false, version: "1.0" }, + { isUpgrade: false, version: "1.0" }, + { isUpgrade: false, version: null }, + ]; + + yield check_installed(conditions); yield promiseShutdownManager(); }); // Putting it back will make the set work again add_task(function* test_reuse() { - let file = do_get_file("data/system_addons/system2_1.xpi"); - file.copyTo(featureDir, "system2@tests.mozilla.org.xpi"); + let file = do_get_file("data/system_addons/system2_2.xpi"); + file.copyTo(updatesDir, "system2@tests.mozilla.org.xpi"); startupManager(false); - yield check_installed(true, null, "1.0", "1.0"); + let conditions = [ + { isUpgrade: false, version: "1.0" }, + { isUpgrade: true, version: "2.0" }, + { isUpgrade: true, version: "2.0" }, + ]; + + yield check_installed(conditions); yield promiseShutdownManager(); }); @@ -238,7 +305,13 @@ startupManager(false); - yield check_installed(false, "1.0", "1.0", null); + let conditions = [ + { isUpgrade: false, version: "1.0" }, + { isUpgrade: false, version: "1.0" }, + { isUpgrade: false, version: null }, + ]; + + yield check_installed(conditions); yield promiseShutdownManager(); }); @@ -246,12 +319,12 @@ // An add-on with a bad certificate should cause us to use the default set add_task(function* test_bad_profile_cert() { let file = do_get_file("data/system_addons/system1_1_badcert.xpi"); - file.copyTo(featureDir, "system1@tests.mozilla.org.xpi"); + file.copyTo(updatesDir, "system1@tests.mozilla.org.xpi"); // Inject it into the system set let addonSet = { schema: 1, - directory: featureDir.leafName, + directory: updatesDir.leafName, addons: { "system1@tests.mozilla.org": { version: "2.0" @@ -268,7 +341,13 @@ startupManager(false); - yield check_installed(false, "1.0", "1.0", null); + let conditions = [ + { isUpgrade: false, version: "1.0" }, + { isUpgrade: false, version: "1.0" }, + { isUpgrade: false, version: null }, + ]; + + yield check_installed(conditions); yield promiseShutdownManager(); }); @@ -284,7 +363,13 @@ do_check_neq(addon, null); do_check_eq(addon.signedState, AddonManager.SIGNEDSTATE_NOT_REQUIRED); - yield check_installed(false, "1.0", null, "1.0"); + let conditions = [ + { isUpgrade: false, version: "1.0" }, + { isUpgrade: false, version: null }, + { isUpgrade: false, version: "1.0" }, + ]; + + yield check_installed(conditions); yield promiseShutdownManager(); }); diff -Nru firefox-49.0~b6+build1/toolkit/mozapps/extensions/test/xpcshell/test_system_update.js firefox-49.0~b7+build1/toolkit/mozapps/extensions/test/xpcshell/test_system_update.js --- firefox-49.0~b6+build1/toolkit/mozapps/extensions/test/xpcshell/test_system_update.js 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/mozapps/extensions/test/xpcshell/test_system_update.js 2016-08-26 05:53:34.000000000 +0000 @@ -10,25 +10,25 @@ BootstrapMonitor.init(); -const featureDir = FileUtils.getDir("ProfD", ["features"], false); +const updatesDir = FileUtils.getDir("ProfD", ["features"], false); -function getCurrentFeatureDir() { - let dir = featureDir.clone(); +function getCurrentUpdatesDir() { + let dir = updatesDir.clone(); let set = JSON.parse(Services.prefs.getCharPref(PREF_SYSTEM_ADDON_SET)); dir.append(set.directory); return dir; } -function clearFeatureDir() { +function clearUpdatesDir() { // Delete any existing directories - if (featureDir.exists()) - featureDir.remove(true); + if (updatesDir.exists()) + updatesDir.remove(true); Services.prefs.clearUserPref(PREF_SYSTEM_ADDON_SET); } -function buildPrefilledFeatureDir() { - clearFeatureDir(); +function buildPrefilledUpdatesDir() { + clearUpdatesDir(); // Build the test set let dir = FileUtils.getDir("ProfD", ["features", "prefilled"], true); @@ -146,19 +146,26 @@ return xml; } -function* check_installed(inProfile, ...versions) { - let expectedDir = inProfile ? getCurrentFeatureDir() : distroDir; - - for (let i = 0; i < versions.length; i++) { +function* check_installed(conditions) { + for (let i = 0; i < conditions.length; i++) { + let condition = conditions[i]; let id = "system" + (i + 1) + "@tests.mozilla.org"; let addon = yield promiseAddonByID(id); - if (versions[i]) { - do_print(`Checking state of add-on ${id}, expecting version ${versions[i]}`); + if (!("isUpgrade" in condition) || !("version" in condition)) { + throw Error("condition must contain isUpgrade and version"); + } + let isUpgrade = conditions[i].isUpgrade; + let version = conditions[i].version; + + let expectedDir = isUpgrade ? getCurrentUpdatesDir() : distroDir; + + if (version) { + do_print(`Checking state of add-on ${id}, expecting version ${version}`); // Add-on should be installed do_check_neq(addon, null); - do_check_eq(addon.version, versions[i]); + do_check_eq(addon.version, version); do_check_true(addon.isActive); do_check_false(addon.foreignInstall); do_check_true(addon.hidden); @@ -174,24 +181,20 @@ do_check_true(uri instanceof AM_Ci.nsIFileURL); do_check_eq(uri.file.path, file.path); - if (inProfile) { + if (isUpgrade) { do_check_eq(addon.signedState, AddonManager.SIGNEDSTATE_SYSTEM); } // Verify the add-on actually started - BootstrapMonitor.checkAddonStarted(id, versions[i]); + BootstrapMonitor.checkAddonStarted(id, version); } else { do_print(`Checking state of add-on ${id}, expecting it to be missing`); - if (inProfile) { + if (isUpgrade) { // Add-on should not be installed do_check_eq(addon, null); } - else { - // Either add-on should not be installed or it shouldn't be active - do_check_true(!addon || !addon.isActive); - } BootstrapMonitor.checkAddonNotStarted(id); @@ -215,37 +218,60 @@ // Runs tests with no updated or default system add-ons initially installed blank: { setup: function*() { - clearFeatureDir(); + clearUpdatesDir(); distroDir.leafName = "empty"; }, - initialState: [false, null, null, null, null, null], + initialState: [ + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null} + ], }, - // Runs tests with default system add-ons installed withAppSet: { setup: function*() { - clearFeatureDir(); + clearUpdatesDir(); distroDir.leafName = "prefilled"; }, - initialState: [false, null, "2.0", "2.0", null, null], + initialState: [ + { isUpgrade: false, version: null}, + { isUpgrade: false, version: "2.0"}, + { isUpgrade: false, version: "2.0"}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null} + ] }, // Runs tests with updated system add-ons installed withProfileSet: { setup: function*() { - buildPrefilledFeatureDir(); + buildPrefilledUpdatesDir(); distroDir.leafName = "empty"; }, - initialState: [true, null, "2.0", "2.0", null, null], + initialState: [ + { isUpgrade: false, version: null}, + { isUpgrade: true, version: "2.0"}, + { isUpgrade: true, version: "2.0"}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null} + ] }, // Runs tests with both default and updated system add-ons installed withBothSets: { setup: function*() { - buildPrefilledFeatureDir(); + buildPrefilledUpdatesDir(); distroDir.leafName = "hidden"; }, - initialState: [true, null, "2.0", "2.0", null, null], + initialState: [ + { isUpgrade: false, version: "1.0"}, + { isUpgrade: true, version: "2.0"}, + { isUpgrade: true, version: "2.0"}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null} + ] }, }; @@ -281,19 +307,77 @@ updateList: null, }, - // Test that an empty list updates to an empty set of system add-ons + // Test that an empty list removes existing updates, leaving defaults. empty: { updateList: [], - finalState: [true, null, null, null, null, null] + finalState: { + blank: [ + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null} + ], + withAppSet: [ + { isUpgrade: false, version: null}, + { isUpgrade: false, version: "2.0"}, + { isUpgrade: false, version: "2.0"}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null} + ], + withProfileSet: [ + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null} + ], + withBothSets: [ + { isUpgrade: false, version: "1.0"}, + { isUpgrade: false, version: "1.0"}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null}, + // Set this to `true` to so `verify_state()` expects a blank profile dir + { isUpgrade: true, version: null} + ] + }, }, - // Tests that a new set of system add-ons gets installed newset: { updateList: [ { id: "system4@tests.mozilla.org", version: "1.0", path: "system4_1.xpi" }, { id: "system5@tests.mozilla.org", version: "1.0", path: "system5_1.xpi" } ], - finalState: [true, null, null, null, "1.0", "1.0"] + finalState: { + blank: [ + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null}, + { isUpgrade: true, version: "1.0"}, + { isUpgrade: true, version: "1.0"} + ], + withAppSet: [ + { isUpgrade: false, version: null}, + { isUpgrade: false, version: "2.0"}, + { isUpgrade: false, version: "2.0"}, + { isUpgrade: true, version: "1.0"}, + { isUpgrade: true, version: "1.0"} + ], + withProfileSet: [ + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null}, + { isUpgrade: true, version: "1.0"}, + { isUpgrade: true, version: "1.0"} + ], + withBothSets: [ + { isUpgrade: false, version: "1.0"}, + { isUpgrade: false, version: "1.0"}, + { isUpgrade: false, version: null}, + { isUpgrade: true, version: "1.0"}, + { isUpgrade: true, version: "1.0"} + ] + } }, // Tests that an upgraded set of system add-ons gets installed @@ -302,18 +386,76 @@ { id: "system2@tests.mozilla.org", version: "3.0", path: "system2_3.xpi" }, { id: "system3@tests.mozilla.org", version: "3.0", path: "system3_3.xpi" } ], - finalState: [true, null, "3.0", "3.0", null, null] + finalState: { + blank: [ + { isUpgrade: false, version: null}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null} + ], + withAppSet: [ + { isUpgrade: false, version: null}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null} + ], + withProfileSet: [ + { isUpgrade: false, version: null}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null} + ], + withBothSets: [ + { isUpgrade: false, version: "1.0"}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: false, version: null}, + { isUpgrade: false, version: null} + ] + } }, // Tests that a set of system add-ons, some new, some existing gets installed overlapping: { updateList: [ - { id: "system1@tests.mozilla.org", version: "1.0", path: "system1_2.xpi" }, - { id: "system2@tests.mozilla.org", version: "1.0", path: "system2_2.xpi" }, - { id: "system3@tests.mozilla.org", version: "1.0", path: "system3_3.xpi" }, + { id: "system1@tests.mozilla.org", version: "2.0", path: "system1_2.xpi" }, + { id: "system2@tests.mozilla.org", version: "2.0", path: "system2_2.xpi" }, + { id: "system3@tests.mozilla.org", version: "3.0", path: "system3_3.xpi" }, { id: "system4@tests.mozilla.org", version: "1.0", path: "system4_1.xpi" } ], - finalState: [true, "2.0", "2.0", "3.0", "1.0", null] + finalState: { + blank: [ + { isUpgrade: true, version: "2.0"}, + { isUpgrade: true, version: "2.0"}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: true, version: "1.0"}, + { isUpgrade: false, version: null} + ], + withAppSet: [ + { isUpgrade: true, version: "2.0"}, + { isUpgrade: true, version: "2.0"}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: true, version: "1.0"}, + { isUpgrade: false, version: null} + ], + withProfileSet: [ + { isUpgrade: true, version: "2.0"}, + { isUpgrade: true, version: "2.0"}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: true, version: "1.0"}, + { isUpgrade: false, version: null} + ], + withBothSets: [ + { isUpgrade: true, version: "2.0"}, + { isUpgrade: true, version: "2.0"}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: true, version: "1.0"}, + { isUpgrade: false, version: null} + ] + } }, // Specifying an incorrect version should stop us updating anything @@ -350,7 +492,36 @@ { id: "system3@tests.mozilla.org", version: "3.0", path: "system3_3.xpi", hashFunction: "sha1", hashValue: "2df604b37b13766c0e04f1b7f59800e038f46cd5" }, { id: "system5@tests.mozilla.org", version: "1.0", path: "system5_1.xpi", size: 4671, hashFunction: "sha1", hashValue: "f13dcaa8bfacaa222189bcbb0074972c05ceb621" } ], - finalState: [true, null, "3.0", "3.0", null, "1.0"] + finalState: { + blank: [ + { isUpgrade: false, version: null}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: false, version: null}, + { isUpgrade: true, version: "1.0"} + ], + withAppSet: [ + { isUpgrade: false, version: null}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: false, version: null}, + { isUpgrade: true, version: "1.0"} + ], + withProfileSet: [ + { isUpgrade: false, version: null}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: false, version: null}, + { isUpgrade: true, version: "1.0"} + ], + withBothSets: [ + { isUpgrade: false, version: "1.0"}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: true, version: "3.0"}, + { isUpgrade: false, version: null}, + { isUpgrade: true, version: "1.0"} + ] + } }, // A bad certificate should stop updates @@ -372,8 +543,8 @@ function* get_directories() { let subdirs = []; - if (yield OS.File.exists(featureDir.path)) { - let iterator = new OS.File.DirectoryIterator(featureDir.path); + if (yield OS.File.exists(updatesDir.path)) { + let iterator = new OS.File.DirectoryIterator(updatesDir.path); yield iterator.forEach(entry => { if (entry.isDir) { subdirs.push(entry); @@ -399,7 +570,7 @@ // Make sure the initial state is correct do_print("Checking initial state."); - yield check_installed(...setup.initialState); + yield check_installed(setup.initialState); } function* verify_state(initialState, finalState = undefined) { @@ -407,16 +578,17 @@ // If the initial state was using the profile set then that directory will // still exist. - if (initialState[0]) + + if (initialState.some(a => a.isUpgrade)) { expectedDirs++; + } if (finalState == undefined) { finalState = initialState; } - else { + else if (finalState.some(a => a.isUpgrade)) { // If the new state is using the profile then that directory will exist. - if (finalState[0]) - expectedDirs++; + expectedDirs++; } do_print("Checking final state."); @@ -429,10 +601,13 @@ // Check that the new state is active after a restart yield promiseRestartManager(); - yield check_installed(...finalState); + yield check_installed(finalState); } -function* exec_test(setup, test) { +function* exec_test(setupName, testName) { + let setup = TEST_CONDITIONS[setupName]; + let test = TESTS[testName]; + yield setup_conditions(setup); try { @@ -453,23 +628,29 @@ } } - yield verify_state(setup.initialState, test.finalState); + // some tests have a different expected combination of default + // and updated add-ons. + if (test.finalState && setupName in test.finalState) { + yield verify_state(setup.initialState, test.finalState[setupName]); + } + else { + yield verify_state(setup.initialState, test.finalState); + } yield promiseShutdownManager(); } -for (let setup of Object.keys(TEST_CONDITIONS)) { - for (let test of Object.keys(TESTS)) { - add_task(function*() { - do_print("Running test " + setup + " " + test); +add_task(function*() { + for (let setup of Object.keys(TEST_CONDITIONS)) { + for (let test of Object.keys(TESTS)) { + do_print("Running test " + setup + " " + test); - yield exec_test(TEST_CONDITIONS[setup], TESTS[test]); - }); + yield exec_test(setup, test); + } } -} +}); // Some custom tests - // Test that the update check is performed as part of the regular add-on update // check add_task(function* test_addon_update() { @@ -480,8 +661,13 @@ { id: "system3@tests.mozilla.org", version: "2.0", path: "system3_2.xpi" } ])); - yield verify_state(TEST_CONDITIONS.blank.initialState, - [true, null, "2.0", "2.0", null, null]); + yield verify_state(TEST_CONDITIONS.blank.initialState, [ + {isUpgrade: false, version: null}, + {isUpgrade: true, version: "2.0"}, + {isUpgrade: true, version: "2.0"}, + {isUpgrade: false, version: null}, + {isUpgrade: false, version: null} + ]); yield promiseShutdownManager(); }); @@ -548,8 +734,13 @@ // This should revert to the default set instead of installing new versions // into an updated set. - yield verify_state(TEST_CONDITIONS.withBothSets.initialState, - [false, "1.0", "1.0", null, null, null]); + yield verify_state(TEST_CONDITIONS.withBothSets.initialState, [ + {isUpgrade: false, version: "1.0"}, + {isUpgrade: false, version: "1.0"}, + {isUpgrade: false, version: null}, + {isUpgrade: false, version: null}, + {isUpgrade: false, version: null} + ]); yield promiseShutdownManager(); }); @@ -582,8 +773,13 @@ { id: "system4@tests.mozilla.org", version: "1.0", path: "system4_1.xpi" } ])); - yield verify_state(TEST_CONDITIONS.withBothSets.initialState, - [true, null, "2.0", null, "1.0", null]); + yield verify_state(TEST_CONDITIONS.withBothSets.initialState, [ + {isUpgrade: false, version: "1.0"}, + {isUpgrade: true, version: "2.0"}, + {isUpgrade: false, version: null}, + {isUpgrade: true, version: "1.0"}, + {isUpgrade: false, version: null} + ]); yield promiseShutdownManager(); }); @@ -602,8 +798,13 @@ { id: "system4@tests.mozilla.org", version: "1.0", path: "system4_1.xpi" } ])); - yield verify_state(TEST_CONDITIONS.withAppSet.initialState, - [true, null, null, "2.0", "1.0", null]); + yield verify_state(TEST_CONDITIONS.withAppSet.initialState, [ + {isUpgrade: false, version: null}, + {isUpgrade: false, version: "2.0"}, + {isUpgrade: true, version: "2.0"}, + {isUpgrade: true, version: "1.0"}, + {isUpgrade: false, version: null} + ]); yield promiseShutdownManager(); }); @@ -617,8 +818,13 @@ { id: "system3@tests.mozilla.org", version: "1.0", path: "system3_1.xpi" } ])); - yield verify_state(TEST_CONDITIONS.withBothSets.initialState, - [true, null, "2.0", "1.0", null, null]); + yield verify_state(TEST_CONDITIONS.withBothSets.initialState, [ + {isUpgrade: false, version: "1.0"}, + {isUpgrade: true, version: "2.0"}, + {isUpgrade: true, version: "1.0"}, + {isUpgrade: false, version: null}, + {isUpgrade: false, version: null} + ]); yield install_system_addons(yield build_xml(null)); @@ -627,4 +833,3 @@ yield promiseShutdownManager(); }); - diff -Nru firefox-49.0~b6+build1/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini firefox-49.0~b7+build1/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini --- firefox-49.0~b6+build1/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini 2016-08-26 05:53:34.000000000 +0000 @@ -37,5 +37,4 @@ [test_proxy.js] [test_pass_symbol.js] - [include:xpcshell-shared.ini] diff -Nru firefox-49.0~b6+build1/toolkit/mozapps/extensions/test/xpcshell/xpcshell-shared.ini firefox-49.0~b7+build1/toolkit/mozapps/extensions/test/xpcshell/xpcshell-shared.ini --- firefox-49.0~b6+build1/toolkit/mozapps/extensions/test/xpcshell/xpcshell-shared.ini 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/toolkit/mozapps/extensions/test/xpcshell/xpcshell-shared.ini 2016-08-26 05:53:34.000000000 +0000 @@ -316,3 +316,4 @@ [test_switch_os.js] # Bug 1246231 skip-if = os == "mac" && debug +[test_softblocked.js] diff -Nru firefox-49.0~b6+build1/widget/cocoa/nsColorPicker.mm firefox-49.0~b7+build1/widget/cocoa/nsColorPicker.mm --- firefox-49.0~b6+build1/widget/cocoa/nsColorPicker.mm 2016-08-23 06:51:16.000000000 +0000 +++ firefox-49.0~b7+build1/widget/cocoa/nsColorPicker.mm 2016-08-26 05:53:34.000000000 +0000 @@ -136,7 +136,14 @@ nsColorPicker::GetHexStringFromNSColor(NSColor* aColor, nsAString& aResult) { CGFloat redFloat, greenFloat, blueFloat; - [aColor getRed: &redFloat green: &greenFloat blue: &blueFloat alpha: nil]; + + NSColor* color = aColor; + @try { + [color getRed:&redFloat green:&greenFloat blue:&blueFloat alpha: nil]; + } @catch (NSException* e) { + color = [color colorUsingColorSpace:[NSColorSpace genericRGBColorSpace]]; + [color getRed:&redFloat green:&greenFloat blue:&blueFloat alpha: nil]; + } nsCocoaUtils::GetStringForNSString([NSString stringWithFormat:@"#%02x%02x%02x", (int)(redFloat * 255), diff -Nru firefox-49.0~b6+build1/widget/cocoa/nsNativeThemeCocoa.h firefox-49.0~b7+build1/widget/cocoa/nsNativeThemeCocoa.h --- firefox-49.0~b6+build1/widget/cocoa/nsNativeThemeCocoa.h 2016-08-23 06:51:16.000000000 +0000 +++ firefox-49.0~b7+build1/widget/cocoa/nsNativeThemeCocoa.h 2016-08-26 05:53:34.000000000 +0000 @@ -123,7 +123,7 @@ nsIFrame* aFrame, mozilla::EventStates inState); void DrawPushButton(CGContextRef cgContext, const HIRect& inBoxRect, mozilla::EventStates inState, uint8_t aWidgetType, - nsIFrame* aFrame); + nsIFrame* aFrame, float aOriginalHeight); void DrawMenuIcon(CGContextRef cgContext, const CGRect& aRect, mozilla::EventStates inState, nsIFrame* aFrame, const NSSize& aIconSize, NSString* aImageName, diff -Nru firefox-49.0~b6+build1/widget/cocoa/nsNativeThemeCocoa.mm firefox-49.0~b7+build1/widget/cocoa/nsNativeThemeCocoa.mm --- firefox-49.0~b6+build1/widget/cocoa/nsNativeThemeCocoa.mm 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/widget/cocoa/nsNativeThemeCocoa.mm 2016-08-26 05:53:34.000000000 +0000 @@ -1214,7 +1214,7 @@ void nsNativeThemeCocoa::DrawPushButton(CGContextRef cgContext, const HIRect& inBoxRect, EventStates inState, uint8_t aWidgetType, - nsIFrame* aFrame) + nsIFrame* aFrame, float aOriginalHeight) { NS_OBJC_BEGIN_TRY_ABORT_BLOCK; @@ -1244,7 +1244,10 @@ // If the button is tall enough, draw the square button style so that // buttons with non-standard content look good. Otherwise draw normal // rounded aqua buttons. - if (inBoxRect.size.height > DO_SQUARE_BUTTON_HEIGHT) { + // This comparison is done based on the height that is calculated without + // the top, because the snapped height can be affected by the top of the + // rect and that may result in different height depending on the top value. + if (aOriginalHeight > DO_SQUARE_BUTTON_HEIGHT) { [cell setBezelStyle:NSShadowlessSquareBezelStyle]; DrawCellWithScaling(cell, cgContext, inBoxRect, NSRegularControlSize, NSZeroSize, NSMakeSize(14, 0), NULL, mCellDrawView, @@ -2419,6 +2422,7 @@ gfx::Rect nativeDirtyRect = NSRectToRect(aDirtyRect, p2a); gfxRect nativeWidgetRect(aRect.x, aRect.y, aRect.width, aRect.height); nativeWidgetRect.ScaleInverse(gfxFloat(p2a)); + float nativeWidgetHeight = round(nativeWidgetRect.Height()); nativeWidgetRect.Round(); if (nativeWidgetRect.IsEmpty()) return NS_OK; // Don't attempt to draw invisible widgets. @@ -2429,6 +2433,7 @@ if (hidpi) { // Use high-resolution drawing. nativeWidgetRect.Scale(0.5f); + nativeWidgetHeight *= 0.5f; nativeDirtyRect.Scale(0.5f); aDrawTarget.SetTransform(aDrawTarget.GetTransform().PreScale(2.0f, 2.0f)); } @@ -2607,7 +2612,8 @@ } else if (IsButtonTypeMenu(aFrame)) { DrawDropdown(cgContext, macRect, eventState, aWidgetType, aFrame); } else { - DrawPushButton(cgContext, macRect, eventState, aWidgetType, aFrame); + DrawPushButton(cgContext, macRect, eventState, aWidgetType, aFrame, + nativeWidgetHeight); } break; @@ -2618,7 +2624,8 @@ case NS_THEME_MAC_HELP_BUTTON: case NS_THEME_MAC_DISCLOSURE_BUTTON_OPEN: case NS_THEME_MAC_DISCLOSURE_BUTTON_CLOSED: - DrawPushButton(cgContext, macRect, eventState, aWidgetType, aFrame); + DrawPushButton(cgContext, macRect, eventState, aWidgetType, aFrame, + nativeWidgetHeight); break; case NS_THEME_BUTTON_BEVEL: diff -Nru firefox-49.0~b6+build1/widget/gtk/mozgtk/mozgtk.c firefox-49.0~b7+build1/widget/gtk/mozgtk/mozgtk.c --- firefox-49.0~b6+build1/widget/gtk/mozgtk/mozgtk.c 2016-08-23 06:51:16.000000000 +0000 +++ firefox-49.0~b7+build1/widget/gtk/mozgtk/mozgtk.c 2016-08-26 05:53:34.000000000 +0000 @@ -7,7 +7,6 @@ STUB(gdk_atom_intern) STUB(gdk_atom_name) STUB(gdk_beep) -STUB(gdk_cairo_create) STUB(gdk_color_free) STUB(gdk_cursor_new_for_display) STUB(gdk_cursor_new_from_name) diff -Nru firefox-49.0~b6+build1/widget/gtk/nsLookAndFeel.cpp firefox-49.0~b7+build1/widget/gtk/nsLookAndFeel.cpp --- firefox-49.0~b6+build1/widget/gtk/nsLookAndFeel.cpp 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/widget/gtk/nsLookAndFeel.cpp 2016-08-26 05:53:34.000000000 +0000 @@ -32,6 +32,7 @@ #if MOZ_WIDGET_GTK != 2 #include #include "WidgetStyleCache.h" +#include "prenv.h" #endif using mozilla::LookAndFeel; @@ -1106,7 +1107,7 @@ gboolean dark; g_object_get(settings, dark_setting, &dark, nullptr); - if (dark) { + if (dark && !PR_GetEnv("MOZ_ALLOW_GTK_DARK_THEME")) { g_object_set(settings, dark_setting, FALSE, nullptr); } diff -Nru firefox-49.0~b6+build1/widget/gtk/nsWindow.cpp firefox-49.0~b7+build1/widget/gtk/nsWindow.cpp --- firefox-49.0~b6+build1/widget/gtk/nsWindow.cpp 2016-08-23 06:51:16.000000000 +0000 +++ firefox-49.0~b7+build1/widget/gtk/nsWindow.cpp 2016-08-26 05:53:34.000000000 +0000 @@ -112,7 +112,6 @@ #include "Layers.h" #include "GLContextProvider.h" #include "mozilla/gfx/2D.h" -#include "mozilla/gfx/HelpersCairo.h" #include "mozilla/layers/CompositorBridgeParent.h" #ifdef MOZ_X11 @@ -476,7 +475,6 @@ mLastScrollEventTime = GDK_CURRENT_TIME; #endif - mFallbackSurface = nullptr; mPendingConfigures = 0; } @@ -799,11 +797,6 @@ } #endif - if (mFallbackSurface) { - cairo_surface_destroy(mFallbackSurface); - mFallbackSurface = nullptr; - } - // Save until last because OnDestroy() may cause us to be deleted. OnDestroy(); @@ -2252,7 +2245,7 @@ } BufferMode layerBuffering = BufferMode::BUFFERED; - RefPtr dt = StartRemoteDrawingInRegion(region, &layerBuffering); + RefPtr dt = GetDrawTarget(region, &layerBuffering); if (!dt || !dt->IsValid()) { return FALSE; } @@ -2347,10 +2340,13 @@ ctx = nullptr; dt->PopClip(); +# ifdef MOZ_HAVE_SHMIMAGE + if (mBackShmImage && MOZ_LIKELY(!mIsDestroyed)) { + mBackShmImage->Put(region); + } +# endif // MOZ_HAVE_SHMIMAGE #endif // MOZ_X11 - EndRemoteDrawingInRegion(dt, region); - listener->DidPaintWindow(); // Synchronously flush any new dirty areas @@ -6562,23 +6558,11 @@ RefPtr dt; #ifdef MOZ_X11 - bool useXRender = false; -#ifdef MOZ_WIDGET_GTK - useXRender = gfxPlatformGtk::GetPlatform()->UseXRender(); -#endif - - if (useXRender) { - LayoutDeviceIntRect bounds = aRegion.GetBounds(); - LayoutDeviceIntSize size(bounds.XMost(), bounds.YMost()); - RefPtr surf = new gfxXlibSurface(mXDisplay, mXWindow, mXVisual, size.ToUnknownSize()); - if (!surf->CairoStatus()) { - dt = gfxPlatform::GetPlatform()->CreateDrawTargetForSurface(surf.get(), surf->GetSize()); - *aBufferMode = BufferMode::BUFFERED; - } - } - # ifdef MOZ_HAVE_SHMIMAGE - if (!dt && nsShmImage::UseShm()) { +# ifdef MOZ_WIDGET_GTK + if (!gfxPlatformGtk::GetPlatform()->UseXRender()) +# endif + if (nsShmImage::UseShm()) { mBackShmImage.swap(mFrontShmImage); if (!mBackShmImage) { mBackShmImage = new nsShmImage(mXDisplay, mXWindow, mXVisual, mXDepth); @@ -6590,54 +6574,16 @@ } } # endif // MOZ_HAVE_SHMIMAGE -#endif // MOZ_X11 - - // If MIT-SHM and XRender are unavailable, buffer to an image surface. if (!dt) { - IntRect bounds = aRegion.GetBounds().ToUnknownRect(); - IntSize size(bounds.XMost(), bounds.YMost()); - - // Recreate the fallback surface if there is unsufficient space to render. - if (!mFallbackSurface || - cairo_image_surface_get_width(mFallbackSurface) < size.width || - cairo_image_surface_get_height(mFallbackSurface) < size.height) - { - if (mFallbackSurface) - cairo_surface_destroy(mFallbackSurface); - - GdkScreen* screen = gdk_screen_get_default(); - bool argb = gdk_window_get_visual(mGdkWindow) == - gdk_screen_get_rgba_visual(screen); - cairo_format_t cairo_format = argb ? CAIRO_FORMAT_ARGB32 - : CAIRO_FORMAT_RGB24; - mFallbackSurface = cairo_image_surface_create(cairo_format, - bounds.XMost(), - bounds.YMost()); - - // Set the appropriate device scale so that our surface can be used - // as a source without transforming to the GDK window's scale. - static auto sCairoSurfaceSetDeviceScale = - (void (*)(cairo_surface_t*, double, double)) - dlsym(RTLD_DEFAULT, "cairo_surface_set_device_scale"); - if (sCairoSurfaceSetDeviceScale) { - gint scale = GdkScaleFactor(); - sCairoSurfaceSetDeviceScale(mFallbackSurface, scale, scale); - } - - cairo_surface_flush(mFallbackSurface); + LayoutDeviceIntRect bounds = aRegion.GetBounds(); + LayoutDeviceIntSize size(bounds.XMost(), bounds.YMost()); + RefPtr surf = new gfxXlibSurface(mXDisplay, mXWindow, mXVisual, size.ToUnknownSize()); + if (!surf->CairoStatus()) { + dt = gfxPlatform::GetPlatform()->CreateDrawTargetForSurface(surf.get(), surf->GetSize()); + *aBufferMode = BufferMode::BUFFERED; } - - SurfaceFormat format = CairoFormatToGfxFormat( - cairo_image_surface_get_format(mFallbackSurface)); - dt = gfxPlatform::GetPlatform()->CreateDrawTargetForData( - cairo_image_surface_get_data(mFallbackSurface) - + bounds.x * BytesPerPixel(format) - + bounds.y * cairo_image_surface_get_stride(mFallbackSurface), - bounds.Size(), - cairo_image_surface_get_stride(mFallbackSurface), - format); - *aBufferMode = BufferMode::BUFFER_NONE; } +#endif // MOZ_X11 return dt.forget(); } @@ -6654,32 +6600,13 @@ { #ifdef MOZ_X11 # ifdef MOZ_HAVE_SHMIMAGE - if (!mGdkWindow) { + if (!mGdkWindow || !mBackShmImage) { return; } - if (mBackShmImage) { - mBackShmImage->Put(aInvalidRegion); - } + mBackShmImage->Put(aInvalidRegion); # endif // MOZ_HAVE_SHMIMAGE #endif // MOZ_X11 - - if (mFallbackSurface) { - cairo_t* cr = gdk_cairo_create(mGdkWindow); - cairo_surface_mark_dirty(mFallbackSurface); - cairo_set_source_surface(cr, mFallbackSurface, 0, 0); - - for (auto iter = aInvalidRegion.RectIter(); !iter.Done(); iter.Next()) { - // Transform our path into the window's coordinate system. - const IntRectTyped & r = iter.Get(); - cairo_rectangle(cr, DevicePixelsToGdkCoordRoundDown(r.x), - DevicePixelsToGdkCoordRoundDown(r.y), - DevicePixelsToGdkCoordRoundUp(r.width), - DevicePixelsToGdkCoordRoundUp(r.height)); - } - cairo_fill(cr); - cairo_destroy(cr); - } } // Code shared begin BeginMoveDrag and BeginResizeDrag diff -Nru firefox-49.0~b6+build1/widget/gtk/nsWindow.h firefox-49.0~b7+build1/widget/gtk/nsWindow.h --- firefox-49.0~b6+build1/widget/gtk/nsWindow.h 2016-08-23 06:51:17.000000000 +0000 +++ firefox-49.0~b7+build1/widget/gtk/nsWindow.h 2016-08-26 05:53:35.000000000 +0000 @@ -469,9 +469,6 @@ RefPtr mBackShmImage; #endif - // A fallback image surface when a SHM surface is unavailable. - cairo_surface_t* mFallbackSurface; - // Upper bound on pending ConfigureNotify events to be dispatched to the // window. See bug 1225044. int mPendingConfigures;