Repository: dathere/qsv (language: rust)

Issue:
`excel`: expanded range and metadata options
## metadata
- added names and names count
- added tables and tables count (XLSX only)

## range option now supports
- Named ranges (e.g. TestRange)
- Absolute ranges including Sheet name (e.g. Sheet2!A1:C3)
- ranges now also support $ prefix ($A$2:$C$3)



Discussion / hints:

Fix patch:
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 0e57abc25..d64370daf 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -7,8 +7,8 @@ assignees: ''
 
 ---
 
-If you have a Usage question, an Idea for a new feature; or a qsv story you want to share, go to [Discussions](https://github.com/jqnatividad/qsv/discussions).   
-GitHub Issues is primarily used for bug reports, and for tracking Ideas that have been added to the [Backlog](https://github.com/jqnatividad/qsv/projects/1) for implementation.
+If you have a Usage question, an Idea for a new feature; or a qsv story you want to share, go to [Discussions](https://github.com/dathere/qsv/discussions).   
+GitHub Issues is primarily used for bug reports, and for tracking Ideas that have been added to the [Backlog](https://github.com/dathere/qsv/projects/1) for implementation.
 ---
 **Describe the bug**
 A clear and concise description of what the bug is.
diff --git a/.github/workflows/macOS-arm64-selfhosted-publish-nightly.yml b/.github/workflows/macOS-arm64-selfhosted-publish-nightly.yml
index be3179128..2e59b92c0 100644
--- a/.github/workflows/macOS-arm64-selfhosted-publish-nightly.yml
+++ b/.github/workflows/macOS-arm64-selfhosted-publish-nightly.yml
@@ -111,7 +111,7 @@ jobs:
     - name: Download latest release zip
       uses: robinraju/release-downloader@v1.11
       with:
-        repository: "jqnatividad/qsv"
+        repository: "dathere/qsv"
         latest: true
         token: ${{ secrets.GITHUB_TOKEN }}
         fileName: qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip
diff --git a/.github/workflows/macOS-arm64-selfhosted-publish-qsvpy.yml b/.github/workflows/macOS-arm64-selfhosted-publish-qsvpy.yml
index 85ab65392..a78e28403 100644
--- a/.github/workflows/macOS-arm64-selfhosted-publish-qsvpy.yml
+++ b/.github/workflows/macOS-arm64-selfhosted-publish-qsvpy.yml
@@ -130,7 +130,7 @@ jobs:
     - name: Download latest release zip
       uses: robinraju/release-downloader@v1.11
       with:
-          repository: "jqnatividad/qsv"
+          repository: "dathere/qsv"
           latest: true
           token: ${{ secrets.GITHUB_TOKEN }}
           fileName: qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip
diff --git a/.github/workflows/publish-linux-glibc-231-musl-1124.yml b/.github/workflows/publish-linux-glibc-231-musl-1124.yml
index cfbc998f7..1f1ed20a6 100644
--- a/.github/workflows/publish-linux-glibc-231-musl-1124.yml
+++ b/.github/workflows/publish-linux-glibc-231-musl-1124.yml
@@ -123,7 +123,7 @@ jobs:
     - name: Download latest release zip
       uses: robinraju/release-downloader@v1.11
       with:
-        repository: "jqnatividad/qsv"
+        repository: "dathere/qsv"
         latest: true
         token: ${{ secrets.GITHUB_TOKEN }}
         fileName: qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip
diff --git a/.github/workflows/publish-linux-glibc-231-musl-123.yml b/.github/workflows/publish-linux-glibc-231-musl-123.yml
index dceaca0bc..bb641025b 100644
--- a/.github/workflows/publish-linux-glibc-231-musl-123.yml
+++ b/.github/workflows/publish-linux-glibc-231-musl-123.yml
@@ -122,7 +122,7 @@ jobs:
     - name: Download latest release zip
       uses: robinraju/release-downloader@v1.11
       with:
-        repository: "jqnatividad/qsv"
+        repository: "dathere/qsv"
         latest: true
         token: ${{ secrets.GITHUB_TOKEN }}
         fileName: qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip
diff --git a/.github/workflows/publish-linux-qsvpy-glibc-231-musl-123.yml b/.github/workflows/publish-linux-qsvpy-glibc-231-musl-123.yml
index d0933dac9..4e122c169 100644
--- a/.github/workflows/publish-linux-qsvpy-glibc-231-musl-123.yml
+++ b/.github/workflows/publish-linux-qsvpy-glibc-231-musl-123.yml
@@ -168,7 +168,7 @@ jobs:
     - name: Download latest release zip
       uses: robinraju/release-downloader@v1.11
       with:
-        repository: "jqnatividad/qsv"
+        repository: "dathere/qsv"
         latest: true
         token: ${{ secrets.GITHUB_TOKEN }}
         fileName: qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip
diff --git a/.github/workflows/publish-nightly-glibc-231-musl-1124.yml b/.github/workflows/publish-nightly-glibc-231-musl-1124.yml
index 3cfb919aa..9e28cf046 100644
--- a/.github/workflows/publish-nightly-glibc-231-musl-1124.yml
+++ b/.github/workflows/publish-nightly-glibc-231-musl-1124.yml
@@ -125,7 +125,7 @@ jobs:
     - name: Download latest release zip
       uses: robinraju/release-downloader@v1.11
       with:
-        repository: "jqnatividad/qsv"
+        repository: "dathere/qsv"
         latest: true
         token: ${{ secrets.GITHUB_TOKEN }}
         fileName: qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip
diff --git a/.github/workflows/publish-nightly.yml b/.github/workflows/publish-nightly.yml
index 64ff13250..0ae778bc9 100644
--- a/.github/workflows/publish-nightly.yml
+++ b/.github/workflows/publish-nightly.yml
@@ -160,7 +160,7 @@ jobs:
     - name: Download latest release zip
       uses: robinraju/release-downloader@v1.11
       with:
-        repository: "jqnatividad/qsv"
+        repository: "dathere/qsv"
         latest: true
         token: ${{ secrets.GITHUB_TOKEN }}
         fileName: qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip
diff --git a/.github/workflows/publish-portable.yml b/.github/workflows/publish-portable.yml
index ac8fac5f7..0860d1f7c 100644
--- a/.github/workflows/publish-portable.yml
+++ b/.github/workflows/publish-portable.yml
@@ -216,7 +216,7 @@ jobs:
     - name: Download latest release zip
       uses: robinraju/release-downloader@v1.11
       with:
-        repository: "jqnatividad/qsv"
+        repository: "dathere/qsv"
         latest: true
         token: ${{ secrets.GITHUB_TOKEN }}
         fileName: qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip
diff --git a/.github/workflows/publish-qsvpy.yml b/.github/workflows/publish-qsvpy.yml
index 76793191f..bb7be6227 100644
--- a/.github/workflows/publish-qsvpy.yml
+++ b/.github/workflows/publish-qsvpy.yml
@@ -188,7 +188,7 @@ jobs:
     - name: Download latest release zip
       uses: robinraju/release-downloader@v1.11
       with:
-        repository: "jqnatividad/qsv"
+        repository: "dathere/qsv"
         latest: true
         token: ${{ secrets.GITHUB_TOKEN }}
         fileName: qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip
diff --git a/.github/workflows/publish-wix-installer.yml b/.github/workflows/publish-wix-installer.yml
index dd45ebfb8..456897d42 100644
--- a/.github/workflows/publish-wix-installer.yml
+++ b/.github/workflows/publish-wix-installer.yml
@@ -56,7 +56,7 @@ jobs:
         run: |
           $LATEST_TAG=$(git describe --tags --abbrev=0)
           Write-Output "Latest tag: $LATEST_TAG"
-          $url="https://github.com/jqnatividad/qsv/releases/latest/download/qsv-${LATEST_TAG}-x86_64-pc-windows-msvc.zip"
+          $url="https://github.com/dathere/qsv/releases/latest/download/qsv-${LATEST_TAG}-x86_64-pc-windows-msvc.zip"
           Write-Output "URL: $url"
           Invoke-WebRequest -Uri $url -OutFile 'release.zip'
 
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 4a412d368..695128514 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -6,8 +6,8 @@ We welcome and encourage all contributions to the project. Please read the follo
 
 For code contributions, we follow several conventions:
 
-* Please run `cargo +nightly fmt` before submitting a pull request. We use [rustfmt settings](https://github.com/jqnatividad/qsv/blob/master/rustfmt.toml) that require nightly.
-* Please run `cargo +nightly clippy -F all_features -- -W clippy::perf` before submitting a pull request. The project has its clippy preferences set [here](https://github.com/jqnatividad/qsv/blob/bb4f4c7d683719a30f5e9552d16fba96a6872ce9/src/main.rs#L1-L36), and we generally apply clippy's suggestions with those preferences unless there is a good reason not to.   
+* Please run `cargo +nightly fmt` before submitting a pull request. We use [rustfmt settings](https://github.com/dathere/qsv/blob/master/rustfmt.toml) that require nightly.
+* Please run `cargo +nightly clippy -F all_features -- -W clippy::perf` before submitting a pull request. The project has its clippy preferences set [here](https://github.com/dathere/qsv/blob/bb4f4c7d683719a30f5e9552d16fba96a6872ce9/src/main.rs#L1-L36), and we generally apply clippy's suggestions with those preferences unless there is a good reason not to.   
 In that case, our practice is to suppress lints for each specific instance with an optional comment so it does not show up again in future clippy runs, e.g:  
 
 ```rust
@@ -17,7 +17,7 @@ let mut var_a = String::with_capacity(10); // amortize allocation
 
 * Ensure you have the latest version of Rust nightly installed (`rustup toolchain update nightly`), as we use it for clippy and rustfmt. Running `cargo +nightly fmt` and `cargo +nightly clippy` may return different results if you are not using the latest nightly version of Rust.
 * We use docopt for command line argument parsing as we fully take advantage of its ability to parse command line arguments from the contiguous, verbose usage text that is at the beginning of each command's source code that more popular libraries like clap or structopt do not offer.   
-However, since [docopt.rs is unmaintained](https://github.com/docopt/docopt.rs#this-crate-is-unmaintained), we have a [fork](https://github.com/jqnatividad/docopt.rs) that will be maintained along with this project. See this [discussion thread](https://github.com/jqnatividad/qsv/discussions/463) for more details.
+However, since [docopt.rs is unmaintained](https://github.com/docopt/docopt.rs#this-crate-is-unmaintained), we have a [fork](https://github.com/dathere/docopt.rs) that will be maintained along with this project. See this [discussion thread](https://github.com/dathere/qsv/discussions/463) for more details.
 * `unwrap()` and `expect()` are allowed, but there should be an accompanying comment detailing safety
 * TODO: explain testing conventions, and test helpers
 * TODO: explain error handling conventions
@@ -31,9 +31,9 @@ We also welcome and highly encourage recipe contributions!
 
 The recipes need not be all that complicated or use `qsv` exclusively (feel free to mix and match qsv with other CLI tools) but they should be useful and not trivial. We also ask that you include a short description of the recipe, and a link to the source of the recipe if it is not your own.
 
-Just go to the [Cookbook](https://github.com/jqnatividad/qsv/wiki/Cookbook#cookbook) and add your recipe.
+Just go to the [Cookbook](https://github.com/dathere/qsv/wiki/Cookbook#cookbook) and add your recipe.
 
-Once you add a recipe, show it in action! Add a [_"Show and tell"_](https://github.com/jqnatividad/qsv/discussions/categories/show-and-tell) entry in [Discussions](https://github.com/jqnatividad/qsv/discussions), and link to your recipe.
+Once you add a recipe, show it in action! Add a [_"Show and tell"_](https://github.com/dathere/qsv/discussions/categories/show-and-tell) entry in [Discussions](https://github.com/dathere/qsv/discussions), and link to your recipe.
 
 ## Documentation Contributions
 
diff --git a/Cargo.lock b/Cargo.lock
index ac604014d..2a20ffbd9 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1665,7 +1665,7 @@ dependencies = [
 [[package]]
 name = "csv"
 version = "1.3.1"
-source = "git+https://github.com/jqnatividad/rust-csv?branch=qsv-optimized-non-allocating-byterecord-trim#d6902bc4ff9cc1510537d5850a4f89de95650909"
+source = "git+https://github.com/dathere/rust-csv?branch=qsv-optimized-non-allocating-byterecord-trim#d6902bc4ff9cc1510537d5850a4f89de95650909"
 dependencies = [
  "csv-core",
  "itoa",
@@ -1677,7 +1677,7 @@ dependencies = [
 [[package]]
 name = "csv-core"
 version = "0.1.11"
-source = "git+https://github.com/jqnatividad/rust-csv?branch=qsv-optimized-non-allocating-byterecord-trim#d6902bc4ff9cc1510537d5850a4f89de95650909"
+source = "git+https://github.com/dathere/rust-csv?branch=qsv-optimized-non-allocating-byterecord-trim#d6902bc4ff9cc1510537d5850a4f89de95650909"
 dependencies = [
  "memchr",
 ]
@@ -1700,7 +1700,7 @@ dependencies = [
 [[package]]
 name = "csv-index"
 version = "0.1.6"
-source = "git+https://github.com/jqnatividad/rust-csv?branch=qsv-optimized-non-allocating-byterecord-trim#d6902bc4ff9cc1510537d5850a4f89de95650909"
+source = "git+https://github.com/dathere/rust-csv?branch=qsv-optimized-non-allocating-byterecord-trim#d6902bc4ff9cc1510537d5850a4f89de95650909"
 dependencies = [
  "byteorder",
  "csv",
@@ -1722,7 +1722,7 @@ dependencies = [
 [[package]]
 name = "csvlens"
 version = "0.10.1"
-source = "git+https://github.com/jqnatividad/csvlens?branch=arboard-remove-unneeded-image-data-feature#b1381f520591acc6856a7cb6c2c7cf5889365bac"
+source = "git+https://github.com/YS-L/csvlens?rev=f4e39cf#f4e39cfee834359fab371243bda74495983a0b66"
 dependencies = [
  "anyhow",
  "arboard",
@@ -6507,7 +6507,7 @@ dependencies = [
 [[package]]
 name = "sled"
 version = "0.34.7"
-source = "git+https://github.com/jqnatividad/sled?branch=v0.34.7-bumped-parking_lot_to_0.12#83015b27d515a71d280a2d615bbb1b2db9cc739e"
+source = "git+https://github.com/dathere/sled?branch=v0.34.7-bumped-parking_lot_to_0.12#83015b27d515a71d280a2d615bbb1b2db9cc739e"
 dependencies = [
  "crc32fast",
  "crossbeam-epoch",
@@ -6711,7 +6711,7 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
 [[package]]
 name = "strum"
 version = "0.26.3"
-source = "git+https://github.com/jqnatividad/strum?branch=bump-phf-to-0.11#33c1b0848634ea8e85daed31c19dac0c162f25bd"
+source = "git+https://github.com/dathere/strum?branch=bump-phf-to-0.11#33c1b0848634ea8e85daed31c19dac0c162f25bd"
 dependencies = [
  "phf",
  "strum_macros",
@@ -6720,7 +6720,7 @@ dependencies = [
 [[package]]
 name = "strum_macros"
 version = "0.26.4"
-source = "git+https://github.com/jqnatividad/strum?branch=bump-phf-to-0.11#33c1b0848634ea8e85daed31c19dac0c162f25bd"
+source = "git+https://github.com/dathere/strum?branch=bump-phf-to-0.11#33c1b0848634ea8e85daed31c19dac0c162f25bd"
 dependencies = [
  "heck 0.5.0",
  "proc-macro2",
diff --git a/Cargo.toml b/Cargo.toml
index a6cbe7d44..013095724 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -3,9 +3,9 @@ name = "qsv"
 version = "0.138.0" #:version
 authors = ["Joel Natividad <joel@datHere.com>"]
 description = "A Blazing-Fast Data-wrangling toolkit."
-documentation = "https://github.com/jqnatividad/qsv#qsv-ultra-fast-csv-data-wrangling-toolkit"
+documentation = "https://github.com/dathere/qsv#qsv-ultra-fast-csv-data-wrangling-toolkit"
 homepage = "https://qsv.dathere.com"
-repository = "https://github.com/jqnatividad/qsv"
+repository = "https://github.com/dathere/qsv"
 readme = "README.md"
 keywords = ["csv", "geocode", "data-engineering", "etl", "opendata"]
 categories = ["command-line-utilities", "parser-implementations"]
@@ -290,9 +290,9 @@ serial_test = { version = "3.2", features = ["file_locks"] }
 # the csv crate underpins a lot of qsv's functionality, so every perf tweak helps
 # the main feature of this csv fork is accelerated UTF-8 validation using the simdutf8 crate
 # non-allocating ByteRecord trim and a non-allocating StringRecord trim_ascii
-csv       = { git = "https://github.com/jqnatividad/rust-csv", branch = "qsv-optimized-non-allocating-byterecord-trim" }
-csv-core  = { git = "https://github.com/jqnatividad/rust-csv", branch = "qsv-optimized-non-allocating-byterecord-trim" }
-csv-index = { git = "https://github.com/jqnatividad/rust-csv", branch = "qsv-optimized-non-allocating-byterecord-trim" }
+csv       = { git = "https://github.com/dathere/rust-csv", branch = "qsv-optimized-non-allocating-byterecord-trim" }
+csv-core  = { git = "https://github.com/dathere/rust-csv", branch = "qsv-optimized-non-allocating-byterecord-trim" }
+csv-index = { git = "https://github.com/dathere/rust-csv", branch = "qsv-optimized-non-allocating-byterecord-trim" }
 
 # use cached with bumped redis using 0.27
 cached = { git = "https://github.com/jaemk/cached", rev = "bbf457e" }
@@ -300,8 +300,8 @@ cached = { git = "https://github.com/jaemk/cached", rev = "bbf457e" }
 # use calamine with unreleased fixes
 calamine = { git = "https://github.com/tafia/calamine", rev = "cf86fa7" }
 
-# use our fork until PR is merged removing unneeded arboard features
-csvlens = { git = "https://github.com/jqnatividad/csvlens", branch = "arboard-remove-unneeded-image-data-feature" }
+# use upstream removing unneeded arboard features
+csvlens = { git = "https://github.com/YS-L/csvlens", rev = "f4e39cf" }
 
 # needed as dynfmt doesn't work in release mode without this
 # see https://github.com/jan-auer/dynfmt/pull/9
@@ -314,12 +314,12 @@ grex = { git = "https://github.com/pemistahl/grex", rev = "bbf3064" }
 local-encoding = { git = "https://github.com/slonopotamus/local-encoding-rs", branch = "travis-madness" }
 
 # use our patched fork of sled to get rid of unmaintained instant
-sled = { git = "https://github.com/jqnatividad/sled", branch = "v0.34.7-bumped-parking_lot_to_0.12" }
+sled = { git = "https://github.com/dathere/sled", branch = "v0.34.7-bumped-parking_lot_to_0.12" }
 
 # use our fork of strum with bumped phf dependency. They're holding back as they have a conservative
 # MSRV policy, while qsv has an aggressive MSRV policy to always require Rust stable
-strum        = { git = "https://github.com/jqnatividad/strum", branch = "bump-phf-to-0.11" }
-strum_macros = { git = "https://github.com/jqnatividad/strum", branch = "bump-phf-to-0.11" }
+strum        = { git = "https://github.com/dathere/strum", branch = "bump-phf-to-0.11" }
+strum_macros = { git = "https://github.com/dathere/strum", branch = "bump-phf-to-0.11" }
 
 # Polars has a much higher release tempo for its Python bindings compared
 # to its underlying Rust library. See https://github.com/pola-rs/polars/releases
diff --git a/README.md b/README.md
index fb83d3d88..91d984259 100644
--- a/README.md
+++ b/README.md
@@ -1,23 +1,23 @@
 ## qsv: Blazing-fast Data-Wrangling toolkit
 
-[![Linux build status](https://github.com/jqnatividad/qsv/actions/workflows/rust.yml/badge.svg)](https://github.com/jqnatividad/qsv/actions/workflows/rust.yml)
-[![Windows build status](https://github.com/jqnatividad/qsv/actions/workflows/rust-windows.yml/badge.svg)](https://github.com/jqnatividad/qsv/actions/workflows/rust-windows.yml)
-[![macOS build status](https://github.com/jqnatividad/qsv/actions/workflows/rust-macos.yml/badge.svg)](https://github.com/jqnatividad/qsv/actions/workflows/rust-macos.yml)
-[![Security audit](https://github.com/jqnatividad/qsv/actions/workflows/security-audit.yml/badge.svg)](https://github.com/jqnatividad/qsv/actions/workflows/security-audit.yml)
-[![Codacy Badge](https://app.codacy.com/project/badge/Grade/05fdfbc6ddb24e7c829d0c6c3ce82d18)](https://app.codacy.com/gh/jqnatividad/qsv/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
+[![Linux build status](https://github.com/dathere/qsv/actions/workflows/rust.yml/badge.svg)](https://github.com/dathere/qsv/actions/workflows/rust.yml)
+[![Windows build status](https://github.com/dathere/qsv/actions/workflows/rust-windows.yml/badge.svg)](https://github.com/dathere/qsv/actions/workflows/rust-windows.yml)
+[![macOS build status](https://github.com/dathere/qsv/actions/workflows/rust-macos.yml/badge.svg)](https://github.com/dathere/qsv/actions/workflows/rust-macos.yml)
+[![Security audit](https://github.com/dathere/qsv/actions/workflows/security-audit.yml/badge.svg)](https://github.com/dathere/qsv/actions/workflows/security-audit.yml)
+[![Codacy Badge](https://app.codacy.com/project/badge/Grade/05fdfbc6ddb24e7c829d0c6c3ce82d18)](https://app.codacy.com/gh/dathere/qsv/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
 [![Clones](https://img.shields.io/badge/dynamic/json?color=success&label=clones&query=count&url=https://gist.githubusercontent.com/jqnatividad/13f60ad0b54856a55f60b8e653079349/raw/clone.json&logo=github)](https://github.com/MShawon/github-clone-count-badge)
-[![Discussions](https://img.shields.io/github/discussions/jqnatividad/qsv)](https://github.com/jqnatividad/qsv/discussions)
+[![Discussions](https://img.shields.io/github/discussions/dathere/qsv)](https://github.com/dathere/qsv/discussions)
 [![Crates.io](https://img.shields.io/crates/v/qsv.svg?logo=crates.io)](https://crates.io/crates/qsv)
 [![Crates.io downloads](https://img.shields.io/crates/d/qsv?color=orange&label=crates.io%20downloads)](https://crates.io/crates/qsv)
-[![Prebuilt Downloads](https://img.shields.io/github/downloads/jqnatividad/qsv/total?logo=github&label=prebuilt%20downloads)](https://github.com/jqnatividad/qsv/releases/latest)
+[![Prebuilt Downloads](https://img.shields.io/github/downloads/dathere/qsv/total?logo=github&label=prebuilt%20downloads)](https://github.com/dathere/qsv/releases/latest)
 [![Minimum supported Rust version](https://img.shields.io/badge/Rust-1.82.0-red?logo=rust)](#minimum-supported-rust-version)
-[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fjqnatividad%2Fqsv.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fjqnatividad%2Fqsv?ref=badge_shield)
+[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fdathere%2Fqsv.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fdathere%2Fqsv?ref=badge_shield)
 
 <div align="center">
 
  &nbsp;          |  Table of Contents
 :--------------------------|:-------------------------
-![qsv logo](docs/images/qsv-logo.png)<br/>[_Hi-ho "Quicksilver" away!_](https://www.youtube.com/watch?v=p9lf76xOA5k)<br/><sub><sup>[logo details](https://github.com/jqnatividad/qsv/discussions/295)</sup></sub><br/>|qsv is a command line program for querying, slicing,<br>indexing, analyzing, filtering, enriching, transforming,<br>sorting, validating, joining, formatting & converting</br>tabular data (CSV, spreadsheets, [etc.](#file-formats)).<br>Commands are simple, composable & ___"blazing fast"___.<br><br>* [Commands](#available-commands)<br>* [Installation Options](#installation-options)<br> * [Whirlwind Tour](docs/whirlwind_tour.md#a-whirlwind-tour) / [Notebooks](contrib/notebooks/) / [Lessons & Exercises](https://100.dathere.com)<br>* [Cookbook](https://github.com/jqnatividad/qsv/wiki/Cookbook#cookbook)<br>* [FAQ](https://github.com/jqnatividad/qsv/discussions/categories/faq)<br>* [Performance Tuning](docs/PERFORMANCE.md#performance-tuning)<br>* 👉 [Benchmarks](https://qsv.dathere.com/benchmarks) 🚀<br>* [Environment Variables](docs/ENVIRONMENT_VARIABLES.md)<br>* [Feature Flags](#feature-flags)<br>* [Goals/Non-goals](#goals--non-goals)<br>* [Testing](#testing)<br>* [NYC School of Data 2022](https://docs.google.com/presentation/d/e/2PACX-1vQ12ndZL--gkz0HLQRaxqsNOwzddkv1iUKB3sq661yA77OPlAsmHJHpjaqt9s9QEf73VqMfb0cv4jHU/pub?start=false&loop=false&delayms=3000)/[csv,conf,v8](https://docs.google.com/presentation/d/10T_3MyIqS5UsKxJaOY7Ktrd-GfhJelQImlE_qYmtuis/edit#slide=id.g2e0f1e7aa0e_0_62) slides<br>* [Sponsor](#sponsor)
+![qsv logo](docs/images/qsv-logo.png)<br/>[_Hi-ho "Quicksilver" away!_](https://www.youtube.com/watch?v=p9lf76xOA5k)<br/><sub><sup>[logo details](https://github.com/dathere/qsv/discussions/295)</sup></sub><br/>|qsv is a command line program for querying, slicing,<br>indexing, analyzing, filtering, enriching, transforming,<br>sorting, validating, joining, formatting & converting</br>tabular data (CSV, spreadsheets, [etc.](#file-formats)).<br>Commands are simple, composable & ___"blazing fast"___.<br><br>* [Commands](#available-commands)<br>* [Installation Options](#installation-options)<br> * [Whirlwind Tour](docs/whirlwind_tour.md#a-whirlwind-tour) / [Notebooks](contrib/notebooks/) / [Lessons & Exercises](https://100.dathere.com)<br>* [Cookbook](https://github.com/dathere/qsv/wiki/Cookbook#cookbook)<br>* [FAQ](https://github.com/dathere/qsv/discussions/categories/faq)<br>* [Performance Tuning](docs/PERFORMANCE.md#performance-tuning)<br>* 👉 [Benchmarks](https://qsv.dathere.com/benchmarks) 🚀<br>* [Environment Variables](docs/ENVIRONMENT_VARIABLES.md)<br>* [Feature Flags](#feature-flags)<br>* [Goals/Non-goals](#goals--non-goals)<br>* [Testing](#testing)<br>* [NYC School of Data 2022](https://docs.google.com/presentation/d/e/2PACX-1vQ12ndZL--gkz0HLQRaxqsNOwzddkv1iUKB3sq661yA77OPlAsmHJHpjaqt9s9QEf73VqMfb0cv4jHU/pub?start=false&loop=false&delayms=3000)/[csv,conf,v8](https://docs.google.com/presentation/d/10T_3MyIqS5UsKxJaOY7Ktrd-GfhJelQImlE_qYmtuis/edit#slide=id.g2e0f1e7aa0e_0_62) slides<br>* [Sponsor](#sponsor)
 </div>
 <div align="center">
 
@@ -57,16 +57,16 @@
 | [index](/src/cmd/index.rs#L2) | Create an index (📇) for a CSV. This is very quick (even the 15gb, 28m row NYC 311 dataset takes all of 14 seconds to index) & provides constant time indexing/random access into the CSV. With an index, `count`, `sample` & `slice` work instantaneously; random access mode is enabled in `luau`; and multithreading (🏎️) is enabled for the `frequency`, `split`, `stats`, `schema` & `tojsonl` commands. |
 | [input](/src/cmd/input.rs#L2) | Read CSV data with special commenting, quoting, trimming, line-skipping & non-UTF8 encoding handling rules. Typically used to "normalize" a CSV for further processing with other qsv commands. |
 | [join](/src/cmd/join.rs#L2)<br>👆 | Inner, outer, right, cross, anti & semi joins. Automatically creates a simple, in-memory hash index to make it fast.  |
-| [joinp](/src/cmd/joinp.rs#L2)<br>✨🚀🐻‍❄️🪄 | Inner, outer, right, cross, anti, semi & asof joins using the [Pola.rs](https://www.pola.rs) engine. Unlike the `join` command, `joinp` can process files larger than RAM, is multithreaded, has join key validation, pre-join filtering, supports [asof joins](https://pola-rs.github.io/polars/py-polars/html/reference/dataframe/api/polars.DataFrame.join_asof.html) (which is [particularly useful for time series data](https://github.com/jqnatividad/qsv/blob/30cc920d0812a854fcbfedc5db81788a0600c92b/tests/test_joinp.rs#L509-L983)) & its output columns can be coalesced. |
+| [joinp](/src/cmd/joinp.rs#L2)<br>✨🚀🐻‍❄️🪄 | Inner, outer, right, cross, anti, semi & asof joins using the [Pola.rs](https://www.pola.rs) engine. Unlike the `join` command, `joinp` can process files larger than RAM, is multithreaded, has join key validation, pre-join filtering, supports [asof joins](https://pola-rs.github.io/polars/py-polars/html/reference/dataframe/api/polars.DataFrame.join_asof.html) (which is [particularly useful for time series data](https://github.com/dathere/qsv/blob/30cc920d0812a854fcbfedc5db81788a0600c92b/tests/test_joinp.rs#L509-L983)) & its output columns can be coalesced. |
 | [json](/src/cmd/json.rs#L2)<br>👆 | Convert JSON to CSV.
 | [jsonl](/src/cmd/jsonl.rs#L2)<br>🚀🔣 | Convert newline-delimited JSON ([JSONL](https://jsonlines.org/)/[NDJSON](http://ndjson.org/)) to CSV. See `tojsonl` command to convert CSV to JSONL.
 | [lens](/src/cmd/lens.rs#L2) | Interactively view, search & filter a CSV using the [csvlens](https://github.com/YS-L/csvlens#csvlens) engine.
-| <a name="luau_deeplink"></a><br>[luau](/src/cmd/luau.rs#L2) 👑<br>✨📇🌐🔣 ![CKAN](docs/images/ckan.png) | Create multiple new computed columns, filter rows, compute aggregations and build complex data pipelines by executing a [Luau](https://luau-lang.org) [0.653](https://github.com/Roblox/luau/releases/tag/0.653) expression/script for every row of a CSV file ([sequential mode](https://github.com/jqnatividad/qsv/blob/bb72c4ef369d192d85d8b7cc6e972c1b7df77635/tests/test_luau.rs#L254-L298)), or using [random access](https://www.webopedia.com/definitions/random-access/) with an index ([random access mode](https://github.com/jqnatividad/qsv/blob/bb72c4ef369d192d85d8b7cc6e972c1b7df77635/tests/test_luau.rs#L367-L415)).<br>Can process a single Luau expression or [full-fledged data-wrangling scripts using lookup tables](https://github.com/dathere/qsv-lookup-tables#example) with discrete BEGIN, MAIN and END sections.<br> It is not just another qsv command, it is qsv's [Domain-specific Language](https://en.wikipedia.org/wiki/Domain-specific_language) (DSL) with [numerous qsv-specific helper functions](https://github.com/jqnatividad/qsv/blob/113eee17b97882dc368b2e65fec52b86df09f78b/src/cmd/luau.rs#L1356-L2290) to build production data pipelines. |
+| <a name="luau_deeplink"></a><br>[luau](/src/cmd/luau.rs#L2) 👑<br>✨📇🌐🔣 ![CKAN](docs/images/ckan.png) | Create multiple new computed columns, filter rows, compute aggregations and build complex data pipelines by executing a [Luau](https://luau-lang.org) [0.653](https://github.com/Roblox/luau/releases/tag/0.653) expression/script for every row of a CSV file ([sequential mode](https://github.com/dathere/qsv/blob/bb72c4ef369d192d85d8b7cc6e972c1b7df77635/tests/test_luau.rs#L254-L298)), or using [random access](https://www.webopedia.com/definitions/random-access/) with an index ([random access mode](https://github.com/dathere/qsv/blob/bb72c4ef369d192d85d8b7cc6e972c1b7df77635/tests/test_luau.rs#L367-L415)).<br>Can process a single Luau expression or [full-fledged data-wrangling scripts using lookup tables](https://github.com/dathere/qsv-lookup-tables#example) with discrete BEGIN, MAIN and END sections.<br> It is not just another qsv command, it is qsv's [Domain-specific Language](https://en.wikipedia.org/wiki/Domain-specific_language) (DSL) with [numerous qsv-specific helper functions](https://github.com/dathere/qsv/blob/113eee17b97882dc368b2e65fec52b86df09f78b/src/cmd/luau.rs#L1356-L2290) to build production data pipelines. |
 | [partition](/src/cmd/partition.rs#L2)<br>👆 | Partition a CSV based on a column value. |
 | [pro](/src/cmd/pro.rs#L2) | Interact with the [qsv pro](https://qsvpro.dathere.com) API. |
 | [prompt](/src/cmd/prompt.rs#L2) | Open a file dialog to either pick a file as input or save output to a file. |
 | [pseudo](/src/cmd/pseudo.rs#L2)<br>🔣👆 | [Pseudonymise](https://en.wikipedia.org/wiki/Pseudonymization) the value of the given column by replacing them with an incremental identifier.  |
-| [py](/src/cmd/python.rs#L2)<br>✨📇🔣 | Create a new computed column or filter rows by evaluating a python expression on every row of a CSV file. Python's [f-strings](https://www.freecodecamp.org/news/python-f-strings-tutorial-how-to-use-f-strings-for-string-formatting/) is particularly useful for extended formatting, [with the ability to evaluate Python expressions as well](https://github.com/jqnatividad/qsv/blob/4cd00dca88addf0d287247fa27d40563b6d46985/src/cmd/python.rs#L23-L31). |
+| [py](/src/cmd/python.rs#L2)<br>✨📇🔣 | Create a new computed column or filter rows by evaluating a python expression on every row of a CSV file. Python's [f-strings](https://www.freecodecamp.org/news/python-f-strings-tutorial-how-to-use-f-strings-for-string-formatting/) is particularly useful for extended formatting, [with the ability to evaluate Python expressions as well](https://github.com/dathere/qsv/blob/4cd00dca88addf0d287247fa27d40563b6d46985/src/cmd/python.rs#L23-L31). |
 | [rename](/src/cmd/rename.rs#L2) |  Rename the columns of a CSV efficiently. |
 | [replace](/src/cmd/replace.rs#L2)<br>📇👆 | Replace CSV data using a regex. Applies the regex to each field individually. |
 | [reverse](/src/cmd/reverse.rs#L2)<br>📇🤯 | Reverse order of rows in a CSV. Unlike the `sort --reverse` command, it preserves the order of rows with the same key. If an index is present, it works with constant memory. Otherwise, it will load all the data into memory. |
@@ -83,13 +83,13 @@
 | [sortcheck](/src/cmd/sortcheck.rs#L2)<br>📇👆 | Check if a CSV is sorted. With the --json options, also retrieve record count, sort breaks & duplicate count. |
 | [split](/src/cmd/split.rs#L2)<br>📇🏎️ | Split one CSV file into many CSV files. It can split by number of rows, number of chunks or file size. Uses multithreading to go faster if an index is present when splitting by rows or chunks. |
 | [sqlp](/src/cmd/sqlp.rs#L2)<br>✨📇🚀🐻‍❄️🗄️🪄 | Run [Polars](https://pola.rs) SQL queries against several CSVs - converting queries to blazing-fast [LazyFrame](https://docs.pola.rs/user-guide/lazy/using/) expressions, processing larger than memory CSV files. Query results can be saved in CSV, JSON, JSONL, Parquet, Apache Arrow IPC and Apache Avro formats. Supports automatic decompression of gzip, zstd and zlib compressed input files using the `read_csv()` table function. |
-| [stats](/src/cmd/stats.rs#L2)<br>📇🤯🏎️👆🪄 | Compute [summary statistics](https://en.wikipedia.org/wiki/Summary_statistics) (sum, min/max/range, sort order, min/max/sum/avg length, mean, standard error of the mean (SEM), stddev, variance, Coefficient of Variation (CV), nullcount, max precision, sparsity, quartiles, Interquartile Range (IQR), lower/upper fences, skewness, median, mode/s, antimode/s & cardinality) & make GUARANTEED data type inferences (Null, String, Float, Integer, Date, DateTime, Boolean) for each column in a CSV ([more info](https://github.com/jqnatividad/qsv/wiki/Supplemental#stats-command-output-explanation)).<br>Uses multithreading to go faster if an index is present (with an index, can compile "streaming" stats on NYC's 311 data (15gb, 28m rows) in less than 7.3 seconds!). |
+| [stats](/src/cmd/stats.rs#L2)<br>📇🤯🏎️👆🪄 | Compute [summary statistics](https://en.wikipedia.org/wiki/Summary_statistics) (sum, min/max/range, sort order, min/max/sum/avg length, mean, standard error of the mean (SEM), stddev, variance, Coefficient of Variation (CV), nullcount, max precision, sparsity, quartiles, Interquartile Range (IQR), lower/upper fences, skewness, median, mode/s, antimode/s & cardinality) & make GUARANTEED data type inferences (Null, String, Float, Integer, Date, DateTime, Boolean) for each column in a CSV ([more info](https://github.com/dathere/qsv/wiki/Supplemental#stats-command-output-explanation)).<br>Uses multithreading to go faster if an index is present (with an index, can compile "streaming" stats on NYC's 311 data (15gb, 28m rows) in less than 7.3 seconds!). |
 | [table](/src/cmd/table.rs#L2)<br>🤯 | Show aligned output of a CSV using [elastic tabstops](https://github.com/BurntSushi/tabwriter). To interactively view a CSV, use the `lens` command. |
-| [template](/src/cmd/template.rs#L2)<br>📇🚀🔣 | Renders a template using CSV data with the [MiniJinja](https://docs.rs/minijinja/latest/minijinja/) template engine ([Example](https://github.com/jqnatividad/qsv/blob/4645ec07b5befe3b0c0e49bf0f547315d0d7514b/src/cmd/template.rs#L18-L44)). |
+| [template](/src/cmd/template.rs#L2)<br>📇🚀🔣 | Renders a template using CSV data with the [MiniJinja](https://docs.rs/minijinja/latest/minijinja/) template engine ([Example](https://github.com/dathere/qsv/blob/4645ec07b5befe3b0c0e49bf0f547315d0d7514b/src/cmd/template.rs#L18-L44)). |
 | [to](/src/cmd/to.rs#L2)<br>✨🚀🗄️ | Convert CSV files to [PostgreSQL](https://www.postgresql.org), [SQLite](https://www.sqlite.org/index.html), XLSX and [Data Package](https://datahub.io/docs/data-packages/tabular). |
 | [tojsonl](/src/cmd/tojsonl.rs#L3)<br>📇😣🚀🔣🪄 | Smartly converts CSV to a newline-delimited JSON ([JSONL](https://jsonlines.org/)/[NDJSON](http://ndjson.org/)). By scanning the CSV first, it "smartly" infers the appropriate JSON data type for each column. See `jsonl` command to convert JSONL to CSV. |
 | [transpose](/src/cmd/transpose.rs#L2)<br>🤯 | Transpose rows/columns of a CSV.  |
-| <a name="validate_deeplink"></a>[validate](/src/cmd/validate.rs#L2)<br>![CKAN](docs/images/ckan.png) 📇🚀🌐 | Validate CSV data [_blazingly-fast_](https://github.com/Stranger6667/jsonschema-rs?tab=readme-ov-file#performance "using jsonschema-rs - the fastest JSON Schema validator for Rust") using [JSON Schema Validation (Draft 2020-12)](https://json-schema.org/draft/2020-12/json-schema-validation.html) (e.g. _up to 780,031 rows/second_[^1] using [NYC's 311 schema](https://github.com/jqnatividad/qsv/blob/master/resources/test/311_Service_Requests_from_2010_to_Present-2022-03-04.csv.schema.json) generated by the [`schema`](#schema_deeplink) command) & put invalid records into a separate file with an accompanying detailed validation error report file.<br>Supports a custom `currency` format with [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) validation, and a custom `dynamicEnum` keyword that supports enum validation against a CSV on the filesystem, or on a URL (http/https/ckan and dathere URL schemes supported).<br>If no JSON schema file is provided, validates if a CSV conforms to the [RFC 4180 standard](#rfc-4180-csv-standard) and is UTF-8 encoded. |
+| <a name="validate_deeplink"></a>[validate](/src/cmd/validate.rs#L2)<br>![CKAN](docs/images/ckan.png) 📇🚀🌐 | Validate CSV data [_blazingly-fast_](https://github.com/Stranger6667/jsonschema-rs?tab=readme-ov-file#performance "using jsonschema-rs - the fastest JSON Schema validator for Rust") using [JSON Schema Validation (Draft 2020-12)](https://json-schema.org/draft/2020-12/json-schema-validation.html) (e.g. _up to 780,031 rows/second_[^1] using [NYC's 311 schema](https://github.com/dathere/qsv/blob/master/resources/test/311_Service_Requests_from_2010_to_Present-2022-03-04.csv.schema.json) generated by the [`schema`](#schema_deeplink) command) & put invalid records into a separate file with an accompanying detailed validation error report file.<br>Supports a custom `currency` format with [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) validation, and a custom `dynamicEnum` keyword that supports enum validation against a CSV on the filesystem, or on a URL (http/https/ckan and dathere URL schemes supported).<br>If no JSON schema file is provided, validates if a CSV conforms to the [RFC 4180 standard](#rfc-4180-csv-standard) and is UTF-8 encoded. |
 
 <div style="text-align: right"><sub><sup>Performance metrics compiled on an M2 Pro 12-core Mac Mini with 32gb RAM</sup></sub></div>
 
@@ -106,7 +106,7 @@
 ![CKAN](docs/images/ckan.png) : has [CKAN](https://ckan.org)-aware integration options.  
 🌐: has web-aware options.  
 🔣: requires UTF-8 encoded input.  
-👆: has powerful column selector support. See [`select`](https://github.com/jqnatividad/qsv/blob/master/src/cmd/select.rs#L2) for syntax.  
+👆: has powerful column selector support. See [`select`](https://github.com/dathere/qsv/blob/master/src/cmd/select.rs#L2) for syntax.  
 🪄: "automagical" commands that uses stats and/or frequencies to work "smarter" and "faster".
 
 [^1]: see [`validate_index` benchmark](https://qsv.dathere.com/benchmarks)
@@ -123,7 +123,7 @@ width="200"  /></a>
 
 ### Option 1: Download Prebuilt Binaries
 
-Full-featured prebuilt [binary variants](#variants) of the latest qsv version for Linux, macOS & Windows are available [for download](https://github.com/jqnatividad/qsv/releases/latest), including binaries compiled with [Rust Nightly](https://stackoverflow.com/questions/70745970/rust-nightly-vs-beta-version) ([more info](https://github.com/jqnatividad/qsv/blob/master/docs/PERFORMANCE.md#nightly-release-builds)).
+Full-featured prebuilt [binary variants](#variants) of the latest qsv version for Linux, macOS & Windows are available [for download](https://github.com/dathere/qsv/releases/latest), including binaries compiled with [Rust Nightly](https://stackoverflow.com/questions/70745970/rust-nightly-vs-beta-version) ([more info](https://github.com/dathere/qsv/blob/master/docs/PERFORMANCE.md#nightly-release-builds)).
 
 These prebuilt binaries are also built with CPU optimizations enabled for x86_64 (e.g. [SSE4.2](https://en.wikipedia.org/wiki/SSE4#SSE4.2), [AVX2](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2), [AVX512](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_512), etc. on Intel and AMD processors) and Apple Silicon processors ([ARM64 SIMD NEON](https://eclecticlight.co/2021/08/06/accelerating-the-m1-mac-an-introduction-to-simd/)) for even more performance gains.
 
@@ -136,12 +136,12 @@ For macOS, ["ad-hoc" signatures](https://users.rust-lang.org/t/distributing-cli-
 xattr -d com.apple.quarantine qsv
 ```
 
-An additional benefit of using the prebuilt binaries is that they have the `self_update` feature enabled, allowing you to quickly update qsv to the latest version with a simple `qsv --update`. For further security, the `self_update` feature only fetches [releases from this GitHub repo](https://github.com/jqnatividad/qsv/releases) and automatically verifies the signature of the downloaded zip archive before installing the update.
+An additional benefit of using the prebuilt binaries is that they have the `self_update` feature enabled, allowing you to quickly update qsv to the latest version with a simple `qsv --update`. For further security, the `self_update` feature only fetches [releases from this GitHub repo](https://github.com/dathere/qsv/releases) and automatically verifies the signature of the downloaded zip archive before installing the update.
 
 > **_NOTE:_** The `luau` feature is not available in `musl` prebuilt binaries[^3].
 
 #### Manually verifying the Integrity of the Prebuilt Binaries Zip Archives
-All prebuilt binaries zip archives are signed with [zipsign](https://github.com/Kijewski/zipsign#zipsign) with the following public key [qsv-zipsign-public.key](https://github.com/jqnatividad/qsv/raw/master/src/qsv-zipsign-public.key). To verify the integrity of the downloaded zip archives:
+All prebuilt binaries zip archives are signed with [zipsign](https://github.com/Kijewski/zipsign#zipsign) with the following public key [qsv-zipsign-public.key](https://github.com/dathere/qsv/raw/master/src/qsv-zipsign-public.key). To verify the integrity of the downloaded zip archives:
 
 ```bash
 # if you don't have zipsign installed yet
@@ -183,7 +183,7 @@ sudo xbps-install qsv
 
 Note that qsv provided by these package managers/distros enable different features (Homebrew, for instance, only enables the `apply` and `luau` features. However, it does automatically install shell completion for `bash`, `fish` and `zsh` shells).
 
-To find out what features are enabled in a package/distro's qsv, run `qsv --version` ([more info](https://github.com/jqnatividad/qsv/blob/master/docs/PERFORMANCE.md#version-details)).
+To find out what features are enabled in a package/distro's qsv, run `qsv --version` ([more info](https://github.com/dathere/qsv/blob/master/docs/PERFORMANCE.md#version-details)).
 
 In the true spirit of open source, these packages are maintained by volunteers who wanted to make qsv easier to install in various environments. They are much appreciated, and we loosely collaborate with the package maintainers through GitHub, but know that these packages are maintained by third-parties.
 
@@ -238,7 +238,7 @@ cargo install qsv --locked --bin qsvdp -F datapusher_plus,luau,polars
 Compiling from source also works similarly[^2]:
 
 ```bash
-git clone https://github.com/jqnatividad/qsv.git
+git clone https://github.com/dathere/qsv.git
 cd qsv
 cargo build --release --locked --bin qsv --features all_features
 ```
@@ -269,7 +269,7 @@ cargo build --release --locked --bin qsvdp -F datapusher_plus,luau,polars
 
 There are four binary variants of qsv:
 
-* `qsv` - [feature](#feature-flags)-capable(✨), with the [prebuilt binaries](https://github.com/jqnatividad/qsv/releases/latest) enabling all applicable features except Python [^3]
+* `qsv` - [feature](#feature-flags)-capable(✨), with the [prebuilt binaries](https://github.com/dathere/qsv/releases/latest) enabling all applicable features except Python [^3]
 * `qsvpy` - same as `qsv` but with the Python feature enabled. Three subvariants are available - qsvpy310, qsvpy311 & qsvpy312 - which are compiled with the latest patch version of Python 3.10, 3.11 & 3.12 respectively.
 * `qsvlite` - all features disabled (~13% of the size of `qsv`)
 * `qsvdp` - optimized for use with [DataPusher+](https://github.com/dathere/datapusher-plus) with only DataPusher+ relevant commands; an embedded [`luau`](#luau_deeplink) interpreter; [`applydp`](#applydp_deeplink), a slimmed-down version of the `apply` feature; the `--progressbar` option disabled; and the self-update only checking for new releases, requiring an explicit `--update` (~12% of the the size of `qsv`).
@@ -352,7 +352,7 @@ Using the `snappy` command, we can compress NYC's 311 data (15gb, 28m rows) to 4
 
 Compare that to [zip 3.0](https://infozip.sourceforge.net/Zip.html), which compressed the same file to 2.9 gb in _248.3 seconds on the same machine - 43x slower at 0.06 gb/sec_ with a 0.19 (5.17:1) compression ratio - for just an additional 14% (2.45 gb) of saved space. zip also took 4.3x longer to roundtrip decompress the same file in _72 seconds_ - _0.20 gb/sec_.
 
-> **_NOTE:_** In addition to `snappy` support, the `sqlp` command also supports automatic decompression of gzip, zstd and zlib compressed input files using the [`read_csv()` table function](https://github.com/jqnatividad/qsv/blob/aa3b20f8ba3ae41b02a3c5d445092571f064b90d/src/cmd/sqlp.rs#L120-L130). It also supports automatic compression of output files when using the Arrow, Avro and Parquet output formats (using the [`--format`](https://github.com/jqnatividad/qsv/blob/aa3b20f8ba3ae41b02a3c5d445092571f064b90d/src/cmd/sqlp.rs#L178-L185) and [`--compression`](https://github.com/jqnatividad/qsv/blob/aa3b20f8ba3ae41b02a3c5d445092571f064b90d/src/cmd/sqlp.rs#L246-L261) options).
+> **_NOTE:_** In addition to `snappy` support, the `sqlp` command also supports automatic decompression of gzip, zstd and zlib compressed input files using the [`read_csv()` table function](https://github.com/dathere/qsv/blob/aa3b20f8ba3ae41b02a3c5d445092571f064b90d/src/cmd/sqlp.rs#L120-L130). It also supports automatic compression of output files when using the Arrow, Avro and Parquet output formats (using the [`--format`](https://github.com/dathere/qsv/blob/aa3b20f8ba3ae41b02a3c5d445092571f064b90d/src/cmd/sqlp.rs#L178-L185) and [`--compression`](https://github.com/dathere/qsv/blob/aa3b20f8ba3ae41b02a3c5d445092571f064b90d/src/cmd/sqlp.rs#L246-L261) options).
 
 ## RFC 4180 CSV Standard
 
@@ -437,7 +437,7 @@ Luau will also serve as the backbone of a whole library of **qsv recipes** - reu
 * **As Portable as Possible** - qsv is designed to be portable, with installers on several platforms with an integrated self-update mechanism. In preference order, it supports Linux, macOS and Windows. See [Installation Options](#installation-options) for more info.
 * **As Easy to Use as Possible** - qsv is designed to be easy to use. As easy-to-use that is,
  as command line interfaces go :shrug:. Its commands have numerous options but have sensible defaults. The usage text is written for a data analyst audience, not developers; and there are numerous examples in the usage text, with the tests doubling as examples as well. With [qsv pro](https://qsvpro.dathere.com), it has much expanded functionality while being easier to use with its Graphical User Interface.
-* **As Secure as Possible** - qsv is designed to be secure. It has no external runtime dependencies, is [written](https://aws.amazon.com/blogs/opensource/why-aws-loves-rust-and-how-wed-like-to-help/) [in](https://msrc.microsoft.com/blog/2019/07/why-rust-for-safe-systems-programming/) [Rust](https://opensource.googleblog.com/2023/06/rust-fact-vs-fiction-5-insights-from-googles-rust-journey-2022.html), and it's codebase is automatically audited for security vulnerabilities with automated [DevSkim](https://github.com/microsoft/DevSkim#devskim), ["cargo audit"](https://rustsec.org) and [Codacy](https://app.codacy.com/gh/jqnatividad/qsv/dashboard) Github Actions workflows.  
+* **As Secure as Possible** - qsv is designed to be secure. It has no external runtime dependencies, is [written](https://aws.amazon.com/blogs/opensource/why-aws-loves-rust-and-how-wed-like-to-help/) [in](https://msrc.microsoft.com/blog/2019/07/why-rust-for-safe-systems-programming/) [Rust](https://opensource.googleblog.com/2023/06/rust-fact-vs-fiction-5-insights-from-googles-rust-journey-2022.html), and it's codebase is automatically audited for security vulnerabilities with automated [DevSkim](https://github.com/microsoft/DevSkim#devskim), ["cargo audit"](https://rustsec.org) and [Codacy](https://app.codacy.com/gh/dathere/qsv/dashboard) Github Actions workflows.  
 It uses the latest stable Rust version, with an aggressive MSRV policy and the latest version of all its dependencies.
 It has an extensive test suite with ~1,600 tests, including several [property tests](https://medium.com/criteo-engineering/introduction-to-property-based-testing-f5236229d237) which [randomly generate](https://github.com/BurntSushi/quickcheck#quickcheck) parameters for oft-used commands.   
 Its prebuilt binary archives are [zipsigned](https://github.com/Kijewski/zipsign#zipsign), so you can [verify their integrity](#verifying-the-integrity-of-the-prebuilt-binaries-zip-archives). Its self-update mechanism automatically verifies the integrity of the prebuilt binaries archive before applying an update.
@@ -452,7 +452,7 @@ It can process well-formed CSVs in _any_ language so long as its UTF-8 encoded.
 Finally, though the default Geonames index of the `geocode` command is English-only, the index can be rebuilt with the `geocode index-update` subcommand with the `--languages` option to return place names in multiple languages ([with support for 254 languages](http://download.geonames.org/export/dump/alternatenames/)).
 
 ## Testing
-qsv has ~1,600 tests in the [tests](https://github.com/jqnatividad/qsv/tree/master/tests) directory.
+qsv has ~1,600 tests in the [tests](https://github.com/dathere/qsv/tree/master/tests) directory.
 Each command has its own test suite in a separate file with the convention `test_<COMMAND>.rs`.
 Apart from preventing regressions, the tests also serve as good illustrative examples, and are often linked from the usage text of each corresponding command.
 
@@ -499,7 +499,7 @@ Dual-licensed under MIT or the [UNLICENSE](https://unlicense.org).
 ## Origins
 
 qsv is a fork of the popular [xsv](https://github.com/BurntSushi/xsv) utility, merging several pending PRs [since xsv 0.13.0's May 2018 release](https://github.com/BurntSushi/xsv/issues/267). On top of xsv's 20 commands, it adds numerous new features; 43 additional commands; 4 `apply` subcommands & 38 operations; 4 `to` subcommands; 3 `cat` subcommands; 7 `geocode` subcommands & 4 index operations; and 4 `snappy` subcommands.
-See [FAQ](https://github.com/jqnatividad/qsv/discussions/categories/faq) for more details.
+See [FAQ](https://github.com/dathere/qsv/discussions/categories/faq) for more details.
 
 ## Sponsor
 
diff --git a/SECURITY.md b/SECURITY.md
index bc536e00c..1921e682d 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -8,12 +8,12 @@ qsv allows `unwrap`,`expect` and `unsafe` in the codebase for performance reason
 
 ## Supported Versions
 
-qsv has a [very rapid release tempo](https://github.com/jqnatividad/qsv/releases), with several releases/month.   
+qsv has a [very rapid release tempo](https://github.com/dathere/qsv/releases), with several releases/month.   
 It has a built-in self-update engine that makes it very convenient to upgrade to the latest version.
 
 ## Reporting a Vulnerability
 
-If you've found a vulnerability, please [create an issue](https://github.com/jqnatividad/qsv/issues/new/choose) in GitHub.
+If you've found a vulnerability, please [create an issue](https://github.com/dathere/qsv/issues/new/choose) in GitHub.
 
 However, if a vulnerability is severe and could lead to zero-day exploits, please send an email to [qsv-severe@datHere.com](mailto:qsv-severe@datHere.com) instead.
 
diff --git a/contrib/notebooks/Whirlwindtour.ipynb b/contrib/notebooks/Whirlwindtour.ipynb
index b87ac6140..645810a98 100644
--- a/contrib/notebooks/Whirlwindtour.ipynb
+++ b/contrib/notebooks/Whirlwindtour.ipynb
@@ -23,7 +23,7 @@
   "cells": [
     {
       "cell_type": "markdown",
-      "source": "<a target=\"_blank\" href=\"https://nbviewer.org/github/jqnatividad/qsv/blob/master/contrib/notebooks/Whirlwindtour.ipynb\">\n    <img src=\"https://img.shields.io/badge/nbviewer-nbviewer.org-orange?logo=jupyter&label=View%20online\" alt=\"View online on nbviewer.org\">\n</a>\n<a target=\"_blank\" href=\"https://github.com/jqnatividad/qsv\">\n    <img src=\"https://img.shields.io/badge/github-jqnatividad%2Fqsv-white?logo=github&label=Source%20Code\" alt=\"View the source code on GitHub\">\n</a>\n",
+      "source": "<a target=\"_blank\" href=\"https://nbviewer.org/github/dathere/qsv/blob/master/contrib/notebooks/Whirlwindtour.ipynb\">\n    <img src=\"https://img.shields.io/badge/nbviewer-nbviewer.org-orange?logo=jupyter&label=View%20online\" alt=\"View online on nbviewer.org\">\n</a>\n<a target=\"_blank\" href=\"https://github.com/dathere/qsv\">\n    <img src=\"https://img.shields.io/badge/github-dathere%2Fqsv-white?logo=github&label=Source%20Code\" alt=\"View the source code on GitHub\">\n</a>\n",
       "metadata": {},
       "id": "f8466df2-007d-4d77-928c-6cca46abc97d"
     },
@@ -252,4 +252,4 @@
       "id": "9d723561-42bd-45fe-af2e-c17d17c41e8c"
     }
   ]
-}
\ No newline at end of file
+}
diff --git a/contrib/notebooks/intro-to-count.ipynb b/contrib/notebooks/intro-to-count.ipynb
index 06995dffd..e9fc32ebd 100644
--- a/contrib/notebooks/intro-to-count.ipynb
+++ b/contrib/notebooks/intro-to-count.ipynb
@@ -6,15 +6,15 @@
         "id": "YjOR1n15wn1K"
       },
       "source": [
-        "<a target=\"_blank\" href=\"https://colab.research.google.com/github/jqnatividad/qsv/blob/master/contrib/notebooks/intro-to-count.ipynb\">\n",
+        "<a target=\"_blank\" href=\"https://colab.research.google.com/github/dathere/qsv/blob/master/contrib/notebooks/intro-to-count.ipynb\">\n",
         "  <img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open in Colab\"/>\n",
         "</a>\n",
-        "<a target=\"_blank\" href=\"https://nbviewer.org/github/jqnatividad/qsv/blob/master/contrib/notebooks/intro-to-count.ipynb\">\n",
+        "<a target=\"_blank\" href=\"https://nbviewer.org/github/dathere/qsv/blob/master/contrib/notebooks/intro-to-count.ipynb\">\n",
         "    <img src=\"https://img.shields.io/badge/nbviewer-nbviewer.org-orange?logo=jupyter&label=View%20online\" alt=\"View online on nbviewer.org\">\n",
         "</a>\n",
         "\n",
-        "<a target=\"_blank\" href=\"https://github.com/jqnatividad/qsv/blob/master/contrib/notebooks/intro-to-count.ipynb\">\n",
-        "    <img src=\"https://img.shields.io/badge/github-jqnatividad%2Fqsv-white?logo=github&label=Source%20Code\" alt=\"View the source code on GitHub\">\n",
+        "<a target=\"_blank\" href=\"https://github.com/dathere/qsv/blob/master/contrib/notebooks/intro-to-count.ipynb\">\n",
+        "    <img src=\"https://img.shields.io/badge/github-dathere%2Fqsv-white?logo=github&label=Source%20Code\" alt=\"View the source code on GitHub\">\n",
         "</a>\n",
         "\n",
         "# Intro to `qsv count`"
@@ -26,9 +26,9 @@
         "id": "9CFiuF_abuL9"
       },
       "source": [
-        "In this notebook we'll be covering examples of using [qsv's `count` command](https://github.com/jqnatividad/qsv/blob/master/src/cmd/count.rs).\n",
+        "In this notebook we'll be covering examples of using [qsv's `count` command](https://github.com/dathere/qsv/blob/master/src/cmd/count.rs).\n",
         "\n",
-        "This notebook uses **qsv**, an open-source CSV data wrangling toolkit available as a command line tool. You may learn more at https://github.com/jqnatividad/qsv."
+        "This notebook uses **qsv**, an open-source CSV data wrangling toolkit available as a command line tool. You may learn more at https://github.com/dathere/qsv."
       ]
     },
     {
@@ -89,7 +89,7 @@
         "<a id=\"1.2\" name=\"1.2\"></a>\n",
         "### 1.2 Downloading qsv\n",
         "\n",
-        "First, let's download qsv into our notebook from the [releases page](https://github.com/jqnatividad/qsv/releases). We'll use qsv 0.111.0:"
+        "First, let's download qsv into our notebook from the [releases page](https://github.com/dathere/qsv/releases). We'll use qsv 0.111.0:"
       ]
     },
     {
@@ -129,7 +129,7 @@
       ],
       "source": [
         "# Downloading the .zip file that contains qsv\n",
-        "!curl -LO https://github.com/jqnatividad/qsv/releases/download/0.111.0/qsv-0.111.0-x86_64-unknown-linux-gnu.zip\n",
+        "!curl -LO https://github.com/dathere/qsv/releases/download/0.111.0/qsv-0.111.0-x86_64-unknown-linux-gnu.zip\n",
         "# Unzipping the .zip file into a folder\n",
         "!unzip -o qsv-0.111.0-x86_64-unknown-linux-gnu.zip -d qsv-0.111.0-files\n",
         "# Moving the qsv binary file from the folder into /bin to use the qsv command anywhere on our system\n",
@@ -238,7 +238,7 @@
             "Note that the count will not include the header row (unless --no-headers is\n",
             "given).\n",
             "\n",
-            "For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_count.rs.\n",
+            "For examples, see https://github.com/dathere/qsv/blob/master/tests/test_count.rs.\n",
             "\n",
             "Usage:\n",
             "    qsv count [options] [<input>]\n",
diff --git a/contrib/notebooks/qsv-colab-quickstart.ipynb b/contrib/notebooks/qsv-colab-quickstart.ipynb
index ff9d72632..de01be678 100644
--- a/contrib/notebooks/qsv-colab-quickstart.ipynb
+++ b/contrib/notebooks/qsv-colab-quickstart.ipynb
@@ -8,7 +8,7 @@
       "source": [
         "# qsv Quickstart on Google Colab\n",
         "\n",
-        "<a target=\"_blank\" href=\"https://colab.research.google.com/github/jqnatividad/qsv/blob/master/contrib/notebooks/qsv-colab-quickstart.ipynb\">\n",
+        "<a target=\"_blank\" href=\"https://colab.research.google.com/github/dathere/qsv/blob/master/contrib/notebooks/qsv-colab-quickstart.ipynb\">\n",
         "  <img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open in Colab\"/>\n",
         "</a>"
       ]
@@ -19,9 +19,9 @@
         "id": "9CFiuF_abuL9"
       },
       "source": [
-        "Get up and running with using [qsv](https://github.com/jqnatividad/qsv) on [Google Colab](https://colab.google)!\n",
+        "Get up and running with using [qsv](https://github.com/dathere/qsv) on [Google Colab](https://colab.google)!\n",
         "\n",
-        "Simply [open this notebook in Google Colab](https://colab.research.google.com/github/jqnatividad/qsv/blob/master/contrib/notebooks/qsv-colab-quickstart.ipynb), sign in to your Google account, and **follow Parts 1 & 2 below**."
+        "Simply [open this notebook in Google Colab](https://colab.research.google.com/github/dathere/qsv/blob/master/contrib/notebooks/qsv-colab-quickstart.ipynb), sign in to your Google account, and **follow Parts 1 & 2 below**."
       ]
     },
     {
@@ -74,7 +74,7 @@
         "<a id=\"1.2\" name=\"1.2\"></a>\n",
         "### 1.2 Downloading qsv\n",
         "\n",
-        "First, let's download qsv into our notebook from the [releases page](https://github.com/jqnatividad/qsv/releases). We'll use qsv 0.112.0:"
+        "First, let's download qsv into our notebook from the [releases page](https://github.com/dathere/qsv/releases). We'll use qsv 0.112.0:"
       ]
     },
     {
@@ -114,7 +114,7 @@
       ],
       "source": [
         "# Downloading the .zip file that contains qsv\n",
-        "!curl -LO https://github.com/jqnatividad/qsv/releases/download/0.112.0/qsv-0.112.0-x86_64-unknown-linux-gnu.zip\n",
+        "!curl -LO https://github.com/dathere/qsv/releases/download/0.112.0/qsv-0.112.0-x86_64-unknown-linux-gnu.zip\n",
         "# Unzipping the .zip file into a folder\n",
         "!unzip -o qsv-0.112.0-x86_64-unknown-linux-gnu.zip -d qsv-0.112.0-files\n",
         "# Moving the qsv binary file from the folder into /bin to use the qsv command anywhere on our system\n",
@@ -450,15 +450,15 @@
         "<a id=\"3\" name=\"3\"></a>\n",
         "## Part 3: More Resources\n",
         "\n",
-        "Want to try other notebooks and share your notebook with others? [Make a pull request](https://github.com/jqnatividad/qsv/pulls) to [qsv's notebooks folder](https://github.com/jqnatividad/qsv/tree/master/contrib/notebooks)!\n",
+        "Want to try other notebooks and share your notebook with others? [Make a pull request](https://github.com/dathere/qsv/pulls) to [qsv's notebooks folder](https://github.com/dathere/qsv/tree/master/contrib/notebooks)!\n",
         "\n",
         "Here are some links you may find useful as a reference:\n",
         "\n",
-        "- [Source code for qsv commands on GitHub](https://github.com/jqnatividad/qsv/tree/master/src/cmd)\n",
-        "- [Discussions forum on GitHub](https://github.com/jqnatividad/qsv/discussions)\n",
-        "- [Report an issue](https://github.com/jqnatividad/qsv/issues)\n",
-        "- [View and contribute to the wiki](https://github.com/jqnatividad/qsv/wiki)\n",
-        "- [qsv on GitHub](https://github.com/jqnatividad/qsv)\n",
+        "- [Source code for qsv commands on GitHub](https://github.com/dathere/qsv/tree/master/src/cmd)\n",
+        "- [Discussions forum on GitHub](https://github.com/dathere/qsv/discussions)\n",
+        "- [Report an issue](https://github.com/dathere/qsv/issues)\n",
+        "- [View and contribute to the wiki](https://github.com/dathere/qsv/wiki)\n",
+        "- [qsv on GitHub](https://github.com/dathere/qsv)\n",
         "- [Welcome to Colaboratory](https://colab.research.google.com/)\n"
       ]
     }
diff --git a/contrib/notebooks/qsv-describegpt-qa.ipynb b/contrib/notebooks/qsv-describegpt-qa.ipynb
index cee2caa49..cc0b56494 100644
--- a/contrib/notebooks/qsv-describegpt-qa.ipynb
+++ b/contrib/notebooks/qsv-describegpt-qa.ipynb
@@ -63,10 +63,10 @@
       "Note that this command uses OpenAI's LLMs for inferencing and is therefore prone to\n",
       "inaccurate information being produced. Verify output results before using them.\n",
       "\n",
-      "For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_describegpt.rs.\n",
+      "For examples, see https://github.com/dathere/qsv/blob/master/tests/test_describegpt.rs.\n",
       "\n",
       "For more detailed info on how describegpt works and how to prepare a prompt file, \n",
-      "see https://github.com/jqnatividad/qsv/blob/master/docs/Describegpt.md\n",
+      "see https://github.com/dathere/qsv/blob/master/docs/Describegpt.md\n",
       "\n",
       "Usage:\n",
       "    qsv describegpt [options] [<input>]\n",
diff --git a/contrib/notebooks/qsv_benchmark.ipynb b/contrib/notebooks/qsv_benchmark.ipynb
index 8bf21666d..a2d86f461 100644
--- a/contrib/notebooks/qsv_benchmark.ipynb
+++ b/contrib/notebooks/qsv_benchmark.ipynb
@@ -17,7 +17,7 @@
     {
       "cell_type": "markdown",
       "source": [
-        " [![qsv - Benchmarks](https://img.shields.io/badge/qsv-Benchmarks-5b69c2)](https://https://github.com/jqnatividad/qsv/tree/master/scripts/results)\n",
+        " [![qsv - Benchmarks](https://img.shields.io/badge/qsv-Benchmarks-5b69c2)](https://https://github.com/dathere/qsv/tree/master/scripts/results)\n",
         "<a target=\"_blank\" href=\"https://colab.research.google.com/drive/1fq4A7hYe0ofwJECp26-uqbPYHGhstK4S#scrollTo=XNbl9l4ili2C\">\n",
         "  <img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open in Colab\"/>\n",
         "</a>\n",
@@ -34,7 +34,7 @@
         "\n",
         "\n",
         "These benchmarks results are compiled on my main development machine - an Apple Mac Mini 2023 model with an M2 Pro chip with 12 CPU cores and 32GB of RAM; a 1TB SSD primary drive and a 1TB Samsung SSD 970 Evo plus external drive running MacOS Sonoma Public Beta.\n",
-        "It uses the prebuilt, CPU optimized qsv binary variant in aarch64-apple-darwin.zip found at https://github.com/jqnatividad/qsv/releases/latest.\n",
+        "It uses the prebuilt, CPU optimized qsv binary variant in aarch64-apple-darwin.zip found at https://github.com/dathere/qsv/releases/latest.\n",
         "\n",
         "\n",
         "\n"
@@ -199,4 +199,4 @@
       ]
     }
   ]
-}
\ No newline at end of file
+}
diff --git a/contrib/wix/app.wxs b/contrib/wix/app.wxs
index f7447dd91..09bda387f 100644
--- a/contrib/wix/app.wxs
+++ b/contrib/wix/app.wxs
@@ -169,7 +169,7 @@
         <Icon Id='ProductICO' SourceFile='contrib\wix\dathere_icon.ico'/>
         <Property Id='ARPPRODUCTICON' Value='ProductICO' />
 
-        <Property Id='ARPHELPLINK' Value='https://github.com/jqnatividad/qsv#qsv-ultra-fast-csv-data-wrangling-toolkit'/>
+        <Property Id='ARPHELPLINK' Value='https://github.com/dathere/qsv#qsv-ultra-fast-csv-data-wrangling-toolkit'/>
         
         <UI>
             <UIRef Id='WixUI_FeatureTree'/>
diff --git a/docs/BENCHMARKS.md b/docs/BENCHMARKS.md
index 3836a90ba..74d35005b 100644
--- a/docs/BENCHMARKS.md
+++ b/docs/BENCHMARKS.md
@@ -6,7 +6,7 @@ These are some very basic and unscientific benchmarks of various commands
 provided by the latest release of `qsv`. Please see below for more information.
 
 These benchmarks were compiled against a 1M row, 512 mb, 41 column [sample of NYC's 311 data]
-(https://raw.githubusercontent.com/wiki/jqnatividad/qsv/files/NYC_311_SR_2010-2020-sample-1M.7z)
+(https://raw.githubusercontent.com/wiki/dathere/qsv/files/NYC_311_SR_2010-2020-sample-1M.7z)
 on a Virtualbox v6.1 Windows 11 v21H2 VM with an AMD Ryzen 7 4800H,
 32GB memory and a 1 TB SSD (VM configured with Ubuntu 20.04 LTS assigned 8 CPUs
 and 12 GB of memory).
@@ -135,7 +135,7 @@ transpose                  NA         NA          NA
 
 The primary purpose of these benchmarks is to provide a rough ballpark estimate of how
 fast each command is, to catch significant performance regressions, and to help you
-[fine-tune qsv's performance](https://github.com/jqnatividad/qsv#performance-tuning) in your environment.
+[fine-tune qsv's performance](https://github.com/dathere/qsv#performance-tuning) in your environment.
 
 The `count` command can be viewed as a sort of baseline of the fastest possible
 command that parses every record in CSV data.
diff --git a/docs/ENVIRONMENT_VARIABLES.md b/docs/ENVIRONMENT_VARIABLES.md
index 30858405c..dceb652e3 100644
--- a/docs/ENVIRONMENT_VARIABLES.md
+++ b/docs/ENVIRONMENT_VARIABLES.md
@@ -35,7 +35,7 @@
 | `QSV_REDIS_TTL_SECONDS` | set time-to-live of Redis cached values (default (seconds): 2419200 (28 days)). |
 | `QSV_REDIS_TTL_REFRESH`| if set, enables cache hits to refresh TTL of Redis cached values. |
 | `QSV_TIMEOUT`| for commands with a --timeout option (`fetch`, `fetchpost`, `luau`, `sniff` and `validate`), the number of seconds before a web request times out (default: 30). |
-| `QSV_USER_AGENT`| the user-agent to use for web requests. When specifying a custom user agent. It supports the following variables - $QSV_VERSION, $QSV_TARGET, $QSV_BIN_NAME and $QSV_KIND. Try to conform to the [IETF RFC 72321 standard](https://tools.ietf.org/html/rfc7231#section-5.5.3). See [here](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) for examples.<br>(default: $QSV_BIN_NAME/$QSV_VERSION ($QSV_TARGET; $QSV_KIND; https://github.com/jqnatividad/qsv) - e.g.<br>`qsv/0.105.0 (x86_64-unknown-linux; prebuilt; https://github.com/jqnatividad/qsv)`).|
+| `QSV_USER_AGENT`| the user-agent to use for web requests. When specifying a custom user agent. It supports the following variables - $QSV_VERSION, $QSV_TARGET, $QSV_BIN_NAME and $QSV_KIND. Try to conform to the [IETF RFC 72321 standard](https://tools.ietf.org/html/rfc7231#section-5.5.3). See [here](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) for examples.<br>(default: $QSV_BIN_NAME/$QSV_VERSION ($QSV_TARGET; $QSV_KIND; https://github.com/dathere/qsv) - e.g.<br>`qsv/0.105.0 (x86_64-unknown-linux; prebuilt; https://github.com/dathere/qsv)`).|
 
 Several dependencies also have environment variables that influence qsv's performance & behavior:
 
diff --git a/docs/Fetch.md b/docs/Fetch.md
index a12370004..3f562c55d 100644
--- a/docs/Fetch.md
+++ b/docs/Fetch.md
@@ -139,7 +139,7 @@ $ qsv fetch URL test5.csv --store-error --http-header "X-Api-Key:mykey" --http-h
   ""headers"": {
     ""Accept"": ""*/*"", 
     ""Host"": ""httpbin.org"", 
-    ""User-Agent"": ""qsv/0.28.0 (https://github.com/jqnatividad/qsv)"", 
+    ""User-Agent"": ""qsv/0.28.0 (https://github.com/dathere/qsv)"", 
     ""X-Amzn-Trace-Id"": ""Root=1-61d8d957-054da2374e304c7c7395cacc"", 
     ""X-Api-Key"": ""mykey"", 
     ""X-Api-Secret"": ""nottelling""
@@ -148,4 +148,4 @@ $ qsv fetch URL test5.csv --store-error --http-header "X-Api-Key:mykey" --http-h
   ""url"": ""http://httpbin.org/get""
 }
 "
-```
\ No newline at end of file
+```
diff --git a/docs/INTERPRETERS.md b/docs/INTERPRETERS.md
index 87136676d..ffa9f8519 100644
--- a/docs/INTERPRETERS.md
+++ b/docs/INTERPRETERS.md
@@ -8,7 +8,7 @@ It has [sandboxing](https://luau-lang.org/sandbox), [type-checking](https://luau
 
 [Lua is faster than Python](https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/lua-python3.html) & Luau is even faster still - more so, as qsv precompiles Luau into bytecode. In addition, [`luau`](/src/cmd/luau.rs#L2) is embedded into qsv, has debug logging, can do aggregations with its `--begin` & `--end` options & has no external dependencies unlike the `py` command.
 
-It also allows mapping of multiple new computed columns, supports random access with indexed CSV files, and has [several helper functions](https://github.com/jqnatividad/qsv/blob/c0c2d5ab3e4ea9cc0e861c6ad41652677ffc4f20/src/cmd/luau.rs#L1250-L1931) to help ease the development of [full-fledged data-wrangling scripts](https://github.com/jqnatividad/qsv/blob/4e521b177ea3a6a06c83222458bb1349a67606f4/tests/test_luau.rs#L524-L571).
+It also allows mapping of multiple new computed columns, supports random access with indexed CSV files, and has [several helper functions](https://github.com/dathere/qsv/blob/c0c2d5ab3e4ea9cc0e861c6ad41652677ffc4f20/src/cmd/luau.rs#L1250-L1931) to help ease the development of [full-fledged data-wrangling scripts](https://github.com/dathere/qsv/blob/4e521b177ea3a6a06c83222458bb1349a67606f4/tests/test_luau.rs#L524-L571).
 
 As date manipulation is often needed, the [LuaDate](https://tieske.github.io/date/) module is also bundled.
 
@@ -29,5 +29,5 @@ You can override this by setting `PYO3_PYTHON` (e.g., `PYO3_PYTHON=python3.7`),
 
 Consider using the [`luau`](/src/cmd/luau.rs#L2) command instead of the [`py`]((/src/cmd/python.rs#L2)) command if the operation you're trying to do can be done with `luau` - as `luau` is statically linked, has no external dependencies, much faster than `py`, can do aggregations, supports random access, has a bevy of qsv helper functions, and allows mapping of multiple new columns. 
 
-The `py` command cannot do aggregations because [PyO3's GIL-bound memory](https://pyo3.rs/v0.17.2/memory.html#gil-bound-memory) limitations will quickly consume a lot of memory (see [issue 449](https://github.com/jqnatividad/qsv/issues/449#issuecomment-1226095316) for details).
+The `py` command cannot do aggregations because [PyO3's GIL-bound memory](https://pyo3.rs/v0.17.2/memory.html#gil-bound-memory) limitations will quickly consume a lot of memory (see [issue 449](https://github.com/dathere/qsv/issues/449#issuecomment-1226095316) for details).
 To prevent this, the `py` command processes CSVs in batches (default: 30,000 records), with a GIL pool for each batch, so no globals are available across batches.
diff --git a/docs/PERFORMANCE.md b/docs/PERFORMANCE.md
index 579222667..e6a01416c 100644
--- a/docs/PERFORMANCE.md
+++ b/docs/PERFORMANCE.md
@@ -31,7 +31,7 @@ export QSV_AUTOINDEX_SIZE=10000000
 ## Stats Cache
 `stats` is the primary reason qsv was created. Several projects we were working on required GUARANTEED data type inferences at speed when we first working on it in 2021. As we iterated and started additional projects, we started needing additional capabilities to enable the ["automagical metadata"](https://dathere.com/2023/11/automagical-metadata/) inferencing workflow we wanted for our data ingestion pipelines.
 
-From the original 11 summary statistics in xsv (type, sum, min/max, min/max length, mean, stddev, median, mode & cardinality ), 22 more were added incrementally over time (is_ascii, range, sort_order, sum_length, avg_length, mean_length, sem, variance, cv, nullcount, max_precision, sparsity, mad, lower outer/inner fence, q1, q2_median, q3, iqr, upper inner/outer fence, skewness, mode_count, mode_occurrences, antimode, antimode_count, antimode_occurrences). Check the [Wiki](https://github.com/jqnatividad/qsv/wiki/Supplemental#stats-command-output-explanation) for more info.
+From the original 11 summary statistics in xsv (type, sum, min/max, min/max length, mean, stddev, median, mode & cardinality ), 22 more were added incrementally over time (is_ascii, range, sort_order, sum_length, avg_length, mean_length, sem, variance, cv, nullcount, max_precision, sparsity, mad, lower outer/inner fence, q1, q2_median, q3, iqr, upper inner/outer fence, skewness, mode_count, mode_occurrences, antimode, antimode_count, antimode_occurrences). Check the [Wiki](https://github.com/dathere/qsv/wiki/Supplemental#stats-command-output-explanation) for more info.
 
 And some of these stats were relatively expensive to compute, so qsv started caching statistics so it didn't need to recompute them if a file hasn't changed (as most of the files we were working on were historical data).
 
@@ -163,7 +163,7 @@ Otherwise, the default memory check heuristic (NORMAL mode) will only check if t
 Depending on your filesystem's configuration (e.g. block size, file system type, writing to remote file systems (e.g. sshfs, efs, nfs),
 SSD or rotating magnetic disks, etc.), you can also fine-tune qsv's read/write buffers.
 
-By default, the read buffer size is set to [128k](https://github.com/jqnatividad/qsv/blob/master/src/config.rs#L16), you can change it by setting the environment
+By default, the read buffer size is set to [128k](https://github.com/dathere/qsv/blob/master/src/config.rs#L16), you can change it by setting the environment
 variable `QSV_RDR_BUFFER_CAPACITY` in bytes.
 
 The same is true with the write buffer (default: 256k) with the `QSV_WTR_BUFFER_CAPACITY` environment variable.
@@ -201,7 +201,7 @@ Shows that I'm running qsv version 0.122.0, with the `mimalloc` allocator (inste
 
 It shows qsv will use 8 logical processors out of 8 detected when running multithreaded commands.
 
-It also shows that I can have a maximum input file size of 3.66 GiB for "non-streaming" commands (see [Memory Management](https://github.com/jqnatividad/qsv#memory-management) for more info), 913.00 MiB of free swap memory, 3.69 GiB of available memory and 16.00 GiB of total memory.
+It also shows that I can have a maximum input file size of 3.66 GiB for "non-streaming" commands (see [Memory Management](https://github.com/dathere/qsv#memory-management) for more info), 913.00 MiB of free swap memory, 3.69 GiB of available memory and 16.00 GiB of total memory.
 
 The qsv binary was built to target the aarch64-apple-darwin platform (Apple Silicon), compiled using Rust 1.75.0. The binary was `compiled` using `cargo build`.
 
@@ -209,7 +209,7 @@ The qsv binary was built to target the aarch64-apple-darwin platform (Apple Sili
 qsv employs several caching strategies to improve performance:
 
 * qsv has large read and write buffers to minimize disk I/O. The default read buffer size is 128k and the default write buffer size is 512k. These can be fine-tuned with the `QSV_RDR_BUFFER_CAPACITY` and `QSV_WTR_BUFFER_CAPACITY` environment variables.
-* The `stats` command caches its results in both CSV and JSONL formats. It does this to avoid re-computing the same statistics when the same input file/parameters are used, but also, as statistics are used in several other commands (currently - `frequency`, `schema` and `tojsonl`, with [more commands using cached statistics in the future](https://github.com/jqnatividad/qsv/issues/898)).   
+* The `stats` command caches its results in both CSV and JSONL formats. It does this to avoid re-computing the same statistics when the same input file/parameters are used, but also, as statistics are used in several other commands (currently - `frequency`, `schema` and `tojsonl`, with [more commands using cached statistics in the future](https://github.com/dathere/qsv/issues/898)).   
 The stats cache are automatically refreshed when the input file is modified the next time the `stats` command is run or when cache-aware commands attempt to use them. The stats cache is stored in the same directory as the input file. The stats cache files are named with the same file stem as the input file with the `stats.csv`, `stats.csv.json` and `stats.csv.data.jsonl` extensions. The CSV contains the cached stats, the JSON file contains metadata about how the stats were compiled, and the JSONL file is the JSONL version of the stats that can be directly loaded into memory by other commands. The JSONL is used by the `frequency`, `schema` and `tojsonl` commands and will only be generated when the `--stats-jsonl` option is set.
 * The `geocode` command [memoizes](https://en.wikipedia.org/wiki/Memoization) otherwise expensive geocoding operations and will report its cache hit rate. `geocode` memoization, however, is not persistent across sessions.
 * The `fetch` and `fetchpost` commands also memoizes expensive REST API calls. When the `--redis` option is enabled, it effectively has a persistent cache as the default time-to-live (TTL) before a Redis cache entry is expired is 28 days and Redis entries are persisted across restarts. Redis cache settings can be fine-tuned with the `QSV_REDIS_CONNSTR`, `QSV_REDIS_TTL_SECONDS`, `QSV_REDIS_TTL_REFRESH` and `QSV_FP_REDIS_CONNSTR` environment variables.
@@ -226,7 +226,7 @@ Where it does matter, qsv will attempt to convert the bytes to UTF-8. But instea
 As UTF-8 is the de facto encoding standard, this shouldn't be a problem most of the time. However, should you need to process a CSV file with a different encoding, use the `input` command with the `--output` option first to "[loosely transcode](https://doc.rust-lang.org/std/string/struct.String.html#method.from_utf8_lossy)" it to UTF-8.
 
 ## Nightly Release Builds
-Pre-built binaries compiled using Rust Nightly/Unstable are also [available for download](https://github.com/jqnatividad/qsv/releases/latest). These binaries are optimized for size and speed:
+Pre-built binaries compiled using Rust Nightly/Unstable are also [available for download](https://github.com/dathere/qsv/releases/latest). These binaries are optimized for size and speed:
 
 * compiled with the last known Rust nightly/unstable that passes all 1,400+ tests.
 * stdlib is compiled from source, instead of using the pre-built stdlib. This ensures stdlib is compiled with all of qsv's release settings
diff --git a/docs/whirlwind_tour.md b/docs/whirlwind_tour.md
index 3db203b78..ab4978ca0 100644
--- a/docs/whirlwind_tour.md
+++ b/docs/whirlwind_tour.md
@@ -11,7 +11,7 @@ city in the world. So grab the 124MB, 2.7M row CSV file and start examining it:
 
 ```
 # there are no headers in the original repo, so let's download a prepared CSV with headers
-$ curl -LO https://raw.githubusercontent.com/wiki/jqnatividad/qsv/files/wcp.zip
+$ curl -LO https://raw.githubusercontent.com/wiki/dathere/qsv/files/wcp.zip
 $ unzip wcp.zip
 $ qsv headers wcp.csv
 1   Country
diff --git a/dotenv.template b/dotenv.template
index 9c9e9c25a..15113e210 100644
--- a/dotenv.template
+++ b/dotenv.template
@@ -173,8 +173,8 @@ QSV_TIMEOUT = 30
 # When specifying a custom user agent, try to conform to the IETF RFC 7231 standard 
 # (https://tools.ietf.org/html/rfc7231#section-5.5.3). For examples, see 
 # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-# (default: <qsv_variant>/<version> (<target>; https://github.com/jqnatividad/qsv)).
-# QSV_USER_AGENT = qsv/0.99.1 (x86_64-apple-darwin; https://github.com/jqnatividad/qsv)
+# (default: <qsv_variant>/<version> (<target>; https://github.com/dathere/qsv)).
+# QSV_USER_AGENT = qsv/0.99.1 (x86_64-apple-darwin; https://github.com/dathere/qsv)
 
 # the filename of the Geonames index file you wish to use for geocoding.
 # If not set, the `geocode` command will download the default index file for
diff --git a/scripts/benchmarks.sh b/scripts/benchmarks.sh
index e157dfccc..fe1abc720 100755
--- a/scripts/benchmarks.sh
+++ b/scripts/benchmarks.sh
@@ -22,7 +22,7 @@
 # so it be can run on hardware and workloads that reflect your requirements/environment.
 #
 # Make sure you're using a release-optimized `qsv`.
-# If you can't use the prebuilt binaries at https://github.com/jqnatividad/qsv/releases/latest,
+# If you can't use the prebuilt binaries at https://github.com/dathere/qsv/releases/latest,
 # build it to have at least the apply, geocode, luau, to and polars features enabled:
 # i.e. `cargo build --release --locked -F feature_capable,apply,geocode,luau,to,polars` or
 # `cargo install --locked qsv -F feature_capable,apply,geocode,luau,to,polars`
@@ -56,7 +56,7 @@ qsv_bin=qsv
 # we use several optional features when dogfooding qsv (apply, luau & to)
 # and the user may be benchmarking a qsv binary variant that doesn't have these features enabled
 qsv_benchmarker_bin=qsv
-benchmark_data_url=https://raw.githubusercontent.com/wiki/jqnatividad/qsv/files/NYC_311_SR_2010-2020-sample-1M.7z
+benchmark_data_url=https://raw.githubusercontent.com/wiki/dathere/qsv/files/NYC_311_SR_2010-2020-sample-1M.7z
 # where to download the benchmark data compressed file - this could be a zip or 7z file
 datazip=NYC_311_SR_2010-2020-sample-1M.7z
 # where to store the benchmark data
@@ -359,7 +359,7 @@ echo ""
 
 if [ ! -r communityboards.csv ]; then
   echo "> Downloading community board data..."
-  curl -sS https://raw.githubusercontent.com/wiki/jqnatividad/qsv/files/communityboards.csv >communityboards.csv
+  curl -sS https://raw.githubusercontent.com/wiki/dathere/qsv/files/communityboards.csv >communityboards.csv
   echo ""
 fi
 
diff --git a/scripts/results/README.md b/scripts/results/README.md
index bb6990262..72eddb5fa 100644
--- a/scripts/results/README.md
+++ b/scripts/results/README.md
@@ -1,9 +1,9 @@
 These benchmarks are compiled on an Apple Mac Mini 2023 model with an M2 Pro chip with 12 CPU cores & 32GB of RAM; a 1TB SSD primary drive & a 1TB Samsung SSD 970 Evo plus external drive running macOS Sequoia 15.1 Developer Beta.
 
-It uses the prebuilt, CPU optimized qsv binary variant in aarch64-apple-darwin.zip found at `https://github.com/jqnatividad/qsv/releases/latest`.
+It uses the prebuilt, CPU optimized qsv binary variant in aarch64-apple-darwin.zip found at `https://github.com/dathere/qsv/releases/latest`.
 
 The benchmarks were performed on a million row, 41 column, 520 MB sample of NYC's 311 data.
-`https://raw.githubusercontent.com/wiki/jqnatividad/qsv/files/NYC_311_SR_2010-2020-sample-1M.7z`
+`https://raw.githubusercontent.com/wiki/dathere/qsv/files/NYC_311_SR_2010-2020-sample-1M.7z`
 
 Each benchmark is executed five times using hyperfine v1.18.0. Two warmup runs followed by three benchmark runs.
 
diff --git a/src/cmd/apply.rs b/src/cmd/apply.rs
index 9bb0b58e7..46c81c06d 100644
--- a/src/cmd/apply.rs
+++ b/src/cmd/apply.rs
@@ -224,7 +224,7 @@ $ qsv apply calcconv --formatstr '10% of abs(sin(pi)) horsepower to watts' -c wa
 And use very large numbers:
 $ qsv apply calcconv --formatstr '{col1} Billion Trillion * {col2} quadrillion vigintillion' -c num_atoms file.csv 
 
-For more extensive examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_apply.rs.
+For more extensive examples, see https://github.com/dathere/qsv/blob/master/tests/test_apply.rs.
 
 Usage:
 qsv apply operations <operations> [options] <column> [<input>]
diff --git a/src/cmd/applydp.rs b/src/cmd/applydp.rs
index 4df2d8cb2..8be06f1a9 100644
--- a/src/cmd/applydp.rs
+++ b/src/cmd/applydp.rs
@@ -126,7 +126,7 @@ Create a new column 'FullName' from 'FirstName', 'MI', and 'LastName' columns:
 
   $ qsv applydp dynfmt --formatstr 'Sir/Madam {FirstName} {MI}. {LastName}' -c FullName file.csv
 
-For more extensive examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_applydp.rs.
+For more extensive examples, see https://github.com/dathere/qsv/blob/master/tests/test_applydp.rs.
 
 Usage:
 qsv applydp operations <operations> [options] <column> [<input>]
diff --git a/src/cmd/cat.rs b/src/cmd/cat.rs
index 2e4c31c58..49a2d76c0 100644
--- a/src/cmd/cat.rs
+++ b/src/cmd/cat.rs
@@ -22,7 +22,7 @@ Concatenating by rows can be done in two ways:
    empty field is written. If a column is missing in the header, an empty field
    is written for all rows.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_cat.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_cat.rs.
 
 Usage:
     qsv cat rows    [options] [<input>...]
@@ -189,7 +189,7 @@ impl Args {
     }
 
     // this algorithm is largely inspired by https://github.com/vi/csvcatrow by @vi
-    // https://github.com/jqnatividad/qsv/issues/527
+    // https://github.com/dathere/qsv/issues/527
     fn cat_rowskey(&self) -> CliResult<()> {
         // ahash is a faster hasher than the default one used by IndexSet and IndexMap
         type AhashIndexSet<T> = IndexSet<T, ahash::RandomState>;
diff --git a/src/cmd/count.rs b/src/cmd/count.rs
index 0f241d32d..667c8748f 100644
--- a/src/cmd/count.rs
+++ b/src/cmd/count.rs
@@ -18,7 +18,7 @@ It has three modes of operation:
 Note that the count will not include the header row (unless --no-headers is
 given).
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_count.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_count.rs.
 
 Usage:
     qsv count [options] [<input>]
diff --git a/src/cmd/datefmt.rs b/src/cmd/datefmt.rs
index 33db90259..09f094080 100644
--- a/src/cmd/datefmt.rs
+++ b/src/cmd/datefmt.rs
@@ -2,7 +2,7 @@ static USAGE: &str = r#"
 Formats recognized date fields (19 formats recognized) to a specified date format
 using strftime date format specifiers.
 
-See https://github.com/jqnatividad/belt/tree/main/dateparser#accepted-date-formats for
+See https://github.com/dathere/belt/tree/main/dateparser#accepted-date-formats for
 recognized date formats.
 See https://docs.rs/chrono/latest/chrono/format/strftime/ for 
 accepted date format specifiers for --formatstr.
@@ -38,7 +38,7 @@ Get the day of the week for several date columns and store it in the correspondi
 
   $ qsv datefmt OpenDate,CloseDate --formatstr '%u' --rename Open_weekday,Close_weekday file.csv
 
-For more extensive examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_datefmt.rs.
+For more extensive examples, see https://github.com/dathere/qsv/blob/master/tests/test_datefmt.rs.
 
 Usage:
 qsv datefmt [--formatstr=<string>] [options] <column> [<input>]
diff --git a/src/cmd/dedup.rs b/src/cmd/dedup.rs
index a9dff8bcb..2b7f2c0b5 100644
--- a/src/cmd/dedup.rs
+++ b/src/cmd/dedup.rs
@@ -12,7 +12,7 @@ Either way, the output will not only be deduplicated, it will also be sorted.
 
 A duplicate count will also be sent to <stderr>.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_dedup.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_dedup.rs.
 
 Usage:
     qsv dedup [options] [<input>]
diff --git a/src/cmd/describegpt.rs b/src/cmd/describegpt.rs
index ed452646d..e891b18bd 100644
--- a/src/cmd/describegpt.rs
+++ b/src/cmd/describegpt.rs
@@ -9,10 +9,10 @@ To attempt generating a data dictionary of a spreadsheet file you may run (repla
 
 qsv describegpt <filepath> --base-url http://localhost:11434/v1 --api-key ollama --model <model> --max-tokens <number> --dictionary
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_describegpt.rs.
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_describegpt.rs.
 
 For more detailed info on how describegpt works and how to prepare a prompt file, 
-see https://github.com/jqnatividad/qsv/blob/master/docs/Describegpt.md
+see https://github.com/dathere/qsv/blob/master/docs/Describegpt.md
 
 Usage:
     qsv describegpt [options] [<input>]
diff --git a/src/cmd/diff.rs b/src/cmd/diff.rs
index 614d8a143..e509ebc49 100644
--- a/src/cmd/diff.rs
+++ b/src/cmd/diff.rs
@@ -42,7 +42,7 @@ Find the difference between two CSVs. Both CSVs have no headers, but the result
 headers, so generic headers will be used in the form of: _col_1, _col_2, etc.:
     qsv diff --no-headers-left --no-headers-right left.csv right.csv
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_diff.rs
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_diff.rs
 
 Usage:
     qsv diff [options] [<input-left>] [<input-right>]
diff --git a/src/cmd/excel.rs b/src/cmd/excel.rs
index a797be42b..fe4748583 100644
--- a/src/cmd/excel.rs
+++ b/src/cmd/excel.rs
@@ -71,7 +71,7 @@ Prompt for spreadsheets to export and then prompt where to save the CSV:
     qsv prompt -d ~/Documents -m 'Select a spreadsheet to export to CSV' -F xlsx,xls,ods | \
      qsv excel - | qsv prompt -m 'Save exported CSV to...' --fd-output
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_excel.rs.
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_excel.rs.
 
 Usage:
     qsv excel [options] [<input>]
diff --git a/src/cmd/exclude.rs b/src/cmd/exclude.rs
index cd1faada0..fc8d65bea 100644
--- a/src/cmd/exclude.rs
+++ b/src/cmd/exclude.rs
@@ -27,7 +27,7 @@ Examples:
     qsv exclude id records.csv id previously-processed.csv | qsv sort |
        qsv --sorted dedup > new-sorted-deduped-records.csv
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_exclude.rs.
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_exclude.rs.
 
 Usage:
     qsv exclude [options] <columns1> <input1> <columns2> <input2>
diff --git a/src/cmd/fetch.rs b/src/cmd/fetch.rs
index 3cae1e3bd..d92b87526 100644
--- a/src/cmd/fetch.rs
+++ b/src/cmd/fetch.rs
@@ -132,7 +132,7 @@ Note that you can pass as many key-value pairs by using --http-header option rep
 
 $ qsv fetch URL data.csv --http-header "X-Api-Key:TEST_KEY" -H "X-Api-Secret:ABC123XYZ" -H "Accept-Language: fr-FR"
 
-For more extensive examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_fetch.rs.
+For more extensive examples, see https://github.com/dathere/qsv/blob/master/tests/test_fetch.rs.
 
 Usage:
     qsv fetch [<url-column> | --url-template <template>] [--jaq <selector> | --jaqfile <file>] [--http-header <k:v>...] [options] [<input>]
diff --git a/src/cmd/fetchpost.rs b/src/cmd/fetchpost.rs
index dc6093108..1a7977dd6 100644
--- a/src/cmd/fetchpost.rs
+++ b/src/cmd/fetchpost.rs
@@ -126,7 +126,7 @@ Note that you can pass as many key-value pairs by using --http-header option rep
 
 $ qsv fetchpost https://httpbin.org/post col1-col3 data.csv -H "X-Api-Key:TEST_KEY" -H "X-Api-Secret:ABC123XYZ"
 
-For more extensive examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_fetch.rs.
+For more extensive examples, see https://github.com/dathere/qsv/blob/master/tests/test_fetch.rs.
 
 Usage:
     qsv fetchpost (<url-column>) (<column-list> | --payload-tpl <file>) [--jaq <selector> | --jaqfile <file>] [--http-header <k:v>...] [options] [<input>]
diff --git a/src/cmd/fill.rs b/src/cmd/fill.rs
index 8d77e6bfe..a945f211f 100644
--- a/src/cmd/fill.rs
+++ b/src/cmd/fill.rs
@@ -29,7 +29,7 @@ CSV is not sorted by the `--groupby` columns, rows may be
 re-ordered during output due to the buffering of rows
 collected before the first valid value.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_fill.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_fill.rs.
 
 Usage:
     qsv fill [options] [--] <selection> [<input>]
diff --git a/src/cmd/flatten.rs b/src/cmd/flatten.rs
index 37996b7b7..146092c5b 100644
--- a/src/cmd/flatten.rs
+++ b/src/cmd/flatten.rs
@@ -7,7 +7,7 @@ can be changed with the --separator flag.
 There is also a condensed view (-c or --condense) that will shorten the
 contents of each field to provide a summary view.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_flatten.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_flatten.rs.
 
 Usage:
     qsv flatten [options] [<input>]
diff --git a/src/cmd/fmt.rs b/src/cmd/fmt.rs
index 305841d34..200eabf31 100644
--- a/src/cmd/fmt.rs
+++ b/src/cmd/fmt.rs
@@ -7,7 +7,7 @@ pipe multiple qsv commands together. However, you may want the final result to
 have a specific delimiter or record separator, and this is where 'qsv fmt' is
 useful.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_fmt.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_fmt.rs.
 
 Usage:
     qsv fmt [options] [<input>]
diff --git a/src/cmd/foreach.rs b/src/cmd/foreach.rs
index 2639aa98d..98b12797c 100644
--- a/src/cmd/foreach.rs
+++ b/src/cmd/foreach.rs
@@ -30,7 +30,7 @@ Same as above but with an additional column containing the current value:
 
   $ qsv foreach query -u -c from_query 'search {}' queries.csv > results.csv
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_foreach.rs.
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_foreach.rs.
 
 Usage:
     qsv foreach [options] <column> <command> [<input>]
diff --git a/src/cmd/frequency.rs b/src/cmd/frequency.rs
index 985c7c988..d67d0b0c5 100644
--- a/src/cmd/frequency.rs
+++ b/src/cmd/frequency.rs
@@ -37,7 +37,7 @@ STATS_MODE "none" NOTES:
     This is useful when you want to apply limits only to columns with a large number
     of unique items and not to columns with a small number of unique items.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_frequency.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_frequency.rs.
 
 Usage:
     qsv frequency [options] [<input>]
diff --git a/src/cmd/geocode.rs b/src/cmd/geocode.rs
index 21d720995..4b925ae18 100644
--- a/src/cmd/geocode.rs
+++ b/src/cmd/geocode.rs
@@ -147,7 +147,7 @@ Load an alternative Geonames cities index from a file, making it the default ind
 
   $ qsv geocode index-load my_geonames_index.bincode
 
-For more extensive examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_geocode.rs.
+For more extensive examples, see https://github.com/dathere/qsv/blob/master/tests/test_geocode.rs.
 
 Usage:
 qsv geocode suggest [--formatstr=<string>] [options] <column> [<input>]
@@ -1309,7 +1309,7 @@ async fn load_engine(geocode_index_file: PathBuf, progressbar: &ProgressBar) ->
         .to_string();
 
     let download_url = format!(
-        "https://github.com/jqnatividad/qsv/releases/download/{QSV_VERSION}/{DEFAULT_GEOCODE_INDEX_FILENAME}.cities"
+        "https://github.com/dathere/qsv/releases/download/{QSV_VERSION}/{DEFAULT_GEOCODE_INDEX_FILENAME}.cities"
     );
 
     if geocode_index_file_stem.parse::<u16>().is_ok() {
diff --git a/src/cmd/headers.rs b/src/cmd/headers.rs
index 4ba3c00d3..37f353906 100644
--- a/src/cmd/headers.rs
+++ b/src/cmd/headers.rs
@@ -7,7 +7,7 @@ CSV data.
 Note that multiple CSV files may be given to this command. This is useful with
 the --intersect flag.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_headers.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_headers.rs.
 
 Usage:
     qsv headers [options] [<input>...]
diff --git a/src/cmd/input.rs b/src/cmd/input.rs
index 0a4a1cbb5..5f000a2fc 100644
--- a/src/cmd/input.rs
+++ b/src/cmd/input.rs
@@ -18,12 +18,12 @@ before processing it with qsv - e.g. to convert an ISO-8859-1 encoded file to UT
 
 You can change this behavior with the --encoding-errors option.
 
-See https://github.com/jqnatividad/qsv#utf-8-encoding for more details.
+See https://github.com/dathere/qsv#utf-8-encoding for more details.
 
 This command is typically used at the beginning of a data pipeline (thus the name `input`)
 to normalize & prepare CSVs for further processing with other qsv commands.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_input.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_input.rs.
 
 Usage:
     qsv input [options] [<input>]
diff --git a/src/cmd/join.rs b/src/cmd/join.rs
index 4fdc36421..f43d18279 100644
--- a/src/cmd/join.rs
+++ b/src/cmd/join.rs
@@ -8,7 +8,7 @@ Joins are always done by ignoring leading and trailing whitespace. By default,
 joins are done case sensitively, but this can be disabled with the --ignore-case
 flag.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_join.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_join.rs.
 
 Usage:
     qsv join [options] <columns1> <input1> <columns2> <input2>
diff --git a/src/cmd/joinp.rs b/src/cmd/joinp.rs
index 74b624f99..256eeb528 100644
--- a/src/cmd/joinp.rs
+++ b/src/cmd/joinp.rs
@@ -12,7 +12,7 @@ However, joinp doesn't have an --ignore-case option.
 
 Returns the shape of the join result (number of rows, number of columns) to stderr.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_joinp.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_joinp.rs.
 
 Usage:
     qsv joinp [options] <columns1> <input1> <columns2> <input2>
diff --git a/src/cmd/json.rs b/src/cmd/json.rs
index 4d4e55796..684180942 100644
--- a/src/cmd/json.rs
+++ b/src/cmd/json.rs
@@ -71,7 +71,7 @@ We may run the following to select the JSON file and convert the nested array to
 
 qsv prompt -F json | qsv json --jaq .data
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_json.rs.
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_json.rs.
 
 Usage:
     qsv json [options] [<input>]
diff --git a/src/cmd/jsonl.rs b/src/cmd/jsonl.rs
index 0116eec70..d1fdb5ff1 100644
--- a/src/cmd/jsonl.rs
+++ b/src/cmd/jsonl.rs
@@ -8,7 +8,7 @@ fields from the input.
 Also, it will fail if the JSON documents are not consistent with one another,
 as the first JSON line will be used to infer the headers of the CSV output.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_jsonl.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_jsonl.rs.
 
 Usage:
     qsv jsonl [options] [<input>]
diff --git a/src/cmd/luau.rs b/src/cmd/luau.rs
index 721b28d1c..8ddabc28b 100644
--- a/src/cmd/luau.rs
+++ b/src/cmd/luau.rs
@@ -139,7 +139,7 @@ CSVs on the filesystem, a URL, datHere's lookup repo or CKAN instances.
 Detailed descriptions of these helpers can be found in the "setup_helpers" section at
 the bottom of this file.
 
-For more detailed examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_luau.rs.
+For more detailed examples, see https://github.com/dathere/qsv/blob/master/tests/test_luau.rs.
 
 Usage:
     qsv luau map [options] -n <main-script> [<input>]
diff --git a/src/cmd/partition.rs b/src/cmd/partition.rs
index a3355d471..46dad028a 100644
--- a/src/cmd/partition.rs
+++ b/src/cmd/partition.rs
@@ -20,7 +20,7 @@ will create the following files, each containing the data for each borough:
     nyc311-Queens.csv
     nyc311-Staten_Island.csv
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_partition.rs.
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_partition.rs.
 
 Usage:
     qsv partition [options] <column> <outdir> [<input>]
diff --git a/src/cmd/pseudo.rs b/src/cmd/pseudo.rs
index 58326d51a..b2cb0d902 100644
--- a/src/cmd/pseudo.rs
+++ b/src/cmd/pseudo.rs
@@ -36,7 +36,7 @@ If run on the following CSV data:
     ID-1005,magenta
     ID-1000,cyan
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_pseudo.rs.
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_pseudo.rs.
 
 Usage:
     qsv pseudo [options] <column> [<input>]
diff --git a/src/cmd/python.rs b/src/cmd/python.rs
index 71407c7f9..d1ac4dd3c 100644
--- a/src/cmd/python.rs
+++ b/src/cmd/python.rs
@@ -80,7 +80,7 @@ Some usage examples:
 
   If any record has an invalid result, an exitcode of 1 is returned and an error count is logged.
 
-For more extensive examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_py.rs.
+For more extensive examples, see https://github.com/dathere/qsv/blob/master/tests/test_py.rs.
 
 Usage:
     qsv py map [options] -n <expression> [<input>]
diff --git a/src/cmd/rename.rs b/src/cmd/rename.rs
index 3b90f6f52..e18ce049d 100644
--- a/src/cmd/rename.rs
+++ b/src/cmd/rename.rs
@@ -17,7 +17,7 @@ CSV unless "_all_generic" is used.
   Use column names that contains commas and conflict with the separator:
     $ qsv rename '"Date - Opening","Date - Actual Closing"'
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_rename.rs.
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_rename.rs.
 
 Usage:
     qsv rename [options] [--] <headers> [<input>]
diff --git a/src/cmd/replace.rs b/src/cmd/replace.rs
index 1e0cd4598..4d6f33e82 100644
--- a/src/cmd/replace.rs
+++ b/src/cmd/replace.rs
@@ -11,7 +11,7 @@ backslash or by wrapping the replacement string into single quotes:
 Returns exitcode 0 when replacements are done, returning number of replacements to stderr.
 Returns exitcode 1 when no replacements are done, unless the '--not-one' flag is used.
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_replace.rs.
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_replace.rs.
 
 Usage:
     qsv replace [options] <pattern> <replacement> [<input>]
diff --git a/src/cmd/safenames.rs b/src/cmd/safenames.rs
index a3ac9c42e..dcc2200fe 100644
--- a/src/cmd/safenames.rs
+++ b/src/cmd/safenames.rs
@@ -56,7 +56,7 @@ by default, unless mode is set to "conditional."
 It is discouraged because the embedded spaces can cause problems later on.
 (see https://lerner.co.il/2013/11/30/quoting-postgresql/ for more info).
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_safenames.rs.
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_safenames.rs.
 
 Usage:
     qsv safenames [options] [<input>]
diff --git a/src/cmd/sample.rs b/src/cmd/sample.rs
index 7e999da8b..68b882f45 100644
--- a/src/cmd/sample.rs
+++ b/src/cmd/sample.rs
@@ -16,7 +16,7 @@ This command is intended to provide a means to sample from a CSV data set that
 is too big to fit into memory (for example, for use with commands like
 'qsv stats' with the '--everything' option). 
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_sample.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_sample.rs.
 
 Usage:
     qsv sample [options] <sample-size> [<input>]
diff --git a/src/cmd/schema.rs b/src/cmd/schema.rs
index c112ece5b..76ef01887 100644
--- a/src/cmd/schema.rs
+++ b/src/cmd/schema.rs
@@ -26,7 +26,7 @@ exists and is current (i.e. stats generated with --cardinality and --infer-dates
 Otherwise, it will run the `stats` command to generate the `stats.csv.data.jsonl` file first,
 and then use that to generate the schema file.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_schema.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_schema.rs.
 
 Usage:
     qsv schema [options] [<input>]
diff --git a/src/cmd/search.rs b/src/cmd/search.rs
index a65d898de..2502d9531 100644
--- a/src/cmd/search.rs
+++ b/src/cmd/search.rs
@@ -13,7 +13,7 @@ Returns exitcode 1 when no match is found, unless the '--not-one' flag is used.
 When --quick is enabled, no output is produced and exitcode 0 is returned on 
 the first match.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_search.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_search.rs.
 
 Usage:
     qsv search [options] <regex> [<input>]
diff --git a/src/cmd/searchset.rs b/src/cmd/searchset.rs
index 068096ae0..3f81fed62 100644
--- a/src/cmd/searchset.rs
+++ b/src/cmd/searchset.rs
@@ -19,7 +19,7 @@ Returns exitcode 1 when no match is found, unless the '--not-one' flag is used.
 When --quick is enabled, no output is produced and exitcode 0 is returned on 
 the first match.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_searchset.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_searchset.rs.
 
 Usage:
     qsv searchset [options] (<regexset-file>) [<input>]
diff --git a/src/cmd/select.rs b/src/cmd/select.rs
index ccbf1ac03..8e1f7ef1d 100644
--- a/src/cmd/select.rs
+++ b/src/cmd/select.rs
@@ -55,7 +55,7 @@ selected using regular expressions.
   Quote column names that conflict with selector syntax:
   $ qsv select '\"Date - Opening\",\"Date - Actual Closing\"'
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_select.rs.
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_select.rs.
 
 Usage:
     qsv select [options] [--] <selection> [<input>]
diff --git a/src/cmd/snappy.rs b/src/cmd/snappy.rs
index 87bbae73b..e5ac7418c 100644
--- a/src/cmd/snappy.rs
+++ b/src/cmd/snappy.rs
@@ -22,7 +22,7 @@ single-threaded compression.
 
 Also, this command is not specific to CSV data, it can compress/decompress ANY file.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_snappy.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_snappy.rs.
 
 Usage:
     qsv snappy compress [options] [<input>]
diff --git a/src/cmd/sniff.rs b/src/cmd/sniff.rs
index e7e4c91b8..7c2f7400d 100644
--- a/src/cmd/sniff.rs
+++ b/src/cmd/sniff.rs
@@ -24,7 +24,7 @@ instead as they scan the entire file. However, they only work on local files and
 CSVs, unlike `sniff` which can work with remote files, various CSV dialects and is very fast
 regardless of file size.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_sniff.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_sniff.rs.
 
 Usage:
     qsv sniff [options] [<input>]
diff --git a/src/cmd/sort.rs b/src/cmd/sort.rs
index 1bbad28fe..dce0d436a 100644
--- a/src/cmd/sort.rs
+++ b/src/cmd/sort.rs
@@ -9,7 +9,7 @@ Note that this requires reading all of the CSV data into memory. If
 you need to sort a large file that may not fit into memory, use the
 extsort command instead.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_sort.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_sort.rs.
 
 Usage:
     qsv sort [options] [<input>]
diff --git a/src/cmd/sortcheck.rs b/src/cmd/sortcheck.rs
index f058d54ca..691b1b151 100644
--- a/src/cmd/sortcheck.rs
+++ b/src/cmd/sortcheck.rs
@@ -20,7 +20,7 @@ require sorted data.
 
 Returns exit code 0 if a CSV is sorted, and exit code 1 otherwise.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_sortcheck.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_sortcheck.rs.
 
 Usage:
     qsv sortcheck [options] [<input>]
diff --git a/src/cmd/split.rs b/src/cmd/split.rs
index 266a5b2aa..3c800c7d3 100644
--- a/src/cmd/split.rs
+++ b/src/cmd/split.rs
@@ -48,7 +48,7 @@ Examples:
 
     qsv split splitoutdir -c 10 -j 4 input.csv
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_split.rs.
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_split.rs.
 
 Usage:
     qsv split [options] (--size <arg> | --chunks <arg> | --kb-size <arg>) <outdir> [<input>]
diff --git a/src/cmd/sqlp.rs b/src/cmd/sqlp.rs
index 040f04379..54948fd60 100644
--- a/src/cmd/sqlp.rs
+++ b/src/cmd/sqlp.rs
@@ -147,7 +147,7 @@ Example queries:
   # explain query plan
    qsv sqlp data.csv 'explain select * from data where col1 > 10 order by col2 desc limit 20'
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_sqlp.rs.
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_sqlp.rs.
 
 Usage:
     qsv sqlp [options] <input>... <sql>
diff --git a/src/cmd/stats.rs b/src/cmd/stats.rs
index 10d9e334d..7b8c6f689 100644
--- a/src/cmd/stats.rs
+++ b/src/cmd/stats.rs
@@ -47,7 +47,7 @@ as its an expensive operation to match a date candidate against 19 possible date
 with each format, having several variants.
 
 The date formats recognized and its sub-variants along with examples can be found at 
-https://github.com/jqnatividad/qsv-dateparser?tab=readme-ov-file#accepted-date-formats.
+https://github.com/dathere/qsv-dateparser?tab=readme-ov-file#accepted-date-formats.
 
 Computing statistics on a large file can be made MUCH faster if you create an index for it
 first with 'qsv index' to enable multithreading. With an index, the file is split into equal
@@ -66,7 +66,7 @@ These cached stats are also used by other qsv commands (currently `schema` & `to
 load the stats into memory faster. If the cached stats are not current (i.e., the input file
 is newer than the cached stats), the cached stats will be ignored and recomputed. For example,
 see the "boston311" test files in 
-https://github.com/jqnatividad/qsv/blob/4529d51273218347fef6aca15ac24e22b85b2ec4/tests/test_stats.rs#L608.
+https://github.com/dathere/qsv/blob/4529d51273218347fef6aca15ac24e22b85b2ec4/tests/test_stats.rs#L608.
 
 Examples:
 
@@ -117,8 +117,8 @@ Prompt for both INPUT and OUTPUT files in the ~/Documents dir with custom prompt
       qsv stats -E --infer-dates | \
       qsv prompt -m 'Save summary to...' -d ~/Documents --fd-output --save-fname summarystats.csv
 
-For more examples, see https://github.com/jqnatividad/qsv/tree/master/resources/test
-For more info, see https://github.com/jqnatividad/qsv/wiki/Supplemental#stats-command-output-explanation
+For more examples, see https://github.com/dathere/qsv/tree/master/resources/test
+For more info, see https://github.com/dathere/qsv/wiki/Supplemental#stats-command-output-explanation
 
 Usage:
     qsv stats [options] [<input>]
diff --git a/src/cmd/template.rs b/src/cmd/template.rs
index c421076b2..446eba5bc 100644
--- a/src/cmd/template.rs
+++ b/src/cmd/template.rs
@@ -51,8 +51,8 @@ template.tpl
 
 qsv template --template-file template.tpl data.csv
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_template.rs.
-For a relatively complex MiniJinja template, see https://github.com/jqnatividad/qsv/blob/master/scripts/template.tpl
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_template.rs.
+For a relatively complex MiniJinja template, see https://github.com/dathere/qsv/blob/master/scripts/template.tpl
 
 Usage:
     qsv template [options] [--template <str> | --template-file <file>] [<input>] [<outdir> | --output <file>]
diff --git a/src/cmd/to.rs b/src/cmd/to.rs
index 5728a78e3..517900f59 100644
--- a/src/cmd/to.rs
+++ b/src/cmd/to.rs
@@ -131,7 +131,7 @@ For all other conversions you can output the datapackage created by specifying `
 
   $ qsv to xlsx datapackage.xlsx --stats --print-package file1.csv file2.csv
 
-For more examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_to.rs.
+For more examples, see https://github.com/dathere/qsv/blob/master/tests/test_to.rs.
 
 Usage:
     qsv to postgres [options] <postgres> [<input>...]
diff --git a/src/cmd/tojsonl.rs b/src/cmd/tojsonl.rs
index ed75dee39..d95dc2999 100644
--- a/src/cmd/tojsonl.rs
+++ b/src/cmd/tojsonl.rs
@@ -13,7 +13,7 @@ The `tojsonl` command will reuse a `stats.csv.data.jsonl` file if it exists and
 current (i.e. stats generated with --cardinality and --infer-dates options) and will
 skip recomputing stats.
 
-For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_tojsonl.rs.
+For examples, see https://github.com/dathere/qsv/blob/master/tests/test_tojsonl.rs.
 
 Usage:
     qsv tojsonl [options] [<input>]
diff --git a/src/cmd/validate.rs b/src/cmd/validate.rs
index 68bdc3387..290338495 100644
--- a/src/cmd/validate.rs
+++ b/src/cmd/validate.rs
@@ -108,7 +108,7 @@ RFC 4180 VALIDATION MODE:
 ========================
 
 If run without a JSON Schema file, the CSV is validated for RFC 4180 CSV standard compliance
-(see https://github.com/jqnatividad/qsv#rfc-4180-csv-standard).
+(see https://github.com/dathere/qsv#rfc-4180-csv-standard).
 
 It also confirms if the CSV is UTF-8 encoded.
 
@@ -116,7 +116,7 @@ For both modes, returns exit code 0 when the CSV file is valid, exitcode > 0 oth
 If all records are valid, no output files are produced.
 
 For examples, see the tests included in this file (denoted by '#[test]') or see
-https://github.com/jqnatividad/qsv/blob/master/tests/test_validate.rs.
+https://github.com/dathere/qsv/blob/master/tests/test_validate.rs.
 
 Usage:
     qsv validate [options] [<input>] [<json-schema>]
@@ -1581,7 +1581,7 @@ fn test_validate_currency_email_dynamicenum_validator() {
                 "agency": {
                     "description": "The person's agency.",
                     "type": "string",
-                    "dynamicEnum": "https://raw.githubusercontent.com/jqnatividad/qsv/refs/heads/master/scripts/NYC_agencies.csv",
+                    "dynamicEnum": "https://raw.githubusercontent.com/dathere/qsv/refs/heads/master/scripts/NYC_agencies.csv",
                 }
             }
         })
@@ -1762,7 +1762,7 @@ fn test_dyn_enum_validator() {
     #[cfg(not(feature = "lite"))]
     QSV_CACHE_DIR.get_or_init(|| qsv_cache_dir);
 
-    let schema = json!({"dynamicEnum": "https://raw.githubusercontent.com/jqnatividad/qsv/refs/heads/master/resources/test/fruits.csv", "type": "string"});
+    let schema = json!({"dynamicEnum": "https://raw.githubusercontent.com/dathere/qsv/refs/heads/master/resources/test/fruits.csv", "type": "string"});
     let validator = jsonschema::options()
         .with_keyword("dynamicEnum", dyn_enum_validator_factory)
         .build(&schema)
diff --git a/src/util.rs b/src/util.rs
index d9c3b51f5..ff71b4fe0 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -110,14 +110,14 @@ pub fn qsv_custom_panic() {
         human_panic::Metadata::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"))
             .authors("datHere qsv maintainers")
             .homepage("https://qsv.dathere.com")
-            .support("- Open a GitHub issue at https://github.com/jqnatividad/qsv/issues")
+            .support("- Open a GitHub issue at https://github.com/dathere/qsv/issues")
     );
 }
 
 fn default_user_agent() -> String {
     let unknown_command = "Unknown".to_string();
     let current_command = CURRENT_COMMAND.get().unwrap_or(&unknown_command);
-    format!("{CARGO_BIN_NAME}/{CARGO_PKG_VERSION} ({TARGET}; {current_command}; {QSV_KIND}; https://github.com/jqnatividad/qsv)")
+    format!("{CARGO_BIN_NAME}/{CARGO_PKG_VERSION} ({TARGET}; {current_command}; {QSV_KIND}; https://github.com/dathere/qsv)")
 }
 
 pub fn max_jobs() -> usize {
@@ -860,7 +860,7 @@ pub fn qsv_check_for_update(check_only: bool, no_confirm: bool) -> Result<bool,
     let curr_version = cargo_crate_version!();
     let releases = if let Ok(releases_list) =
         self_update::backends::github::ReleaseList::configure()
-            .repo_owner("jqnatividad")
+            .repo_owner("dathere")
             .repo_name("qsv")
             .build()
     {
@@ -886,12 +886,10 @@ pub fn qsv_check_for_update(check_only: bool, no_confirm: bool) -> Result<bool,
 
     if latest_release_sv > curr_version_sv {
         eprintln!("Update {latest_release} available. Current version is {curr_version}.");
-        eprintln!(
-            "Release notes: https://github.com/jqnatividad/qsv/releases/tag/{latest_release}\n"
-        );
+        eprintln!("Release notes: https://github.com/dathere/qsv/releases/tag/{latest_release}\n");
         if QSV_KIND.starts_with("prebuilt") && !check_only {
             match self_update::backends::github::Update::configure()
-                .repo_owner("jqnatividad")
+                .repo_owner("dathere")
                 .repo_name("qsv")
                 .bin_name(&bin_name)
                 .show_download_progress(true)
@@ -925,7 +923,7 @@ pub fn qsv_check_for_update(check_only: bool, no_confirm: bool) -> Result<bool,
             winfo!(
                 r#"This qsv was {QSV_KIND}. self-update does not work for manually {QSV_KIND} binaries.
 If you wish to update to the latest version of qsv, manually install/compile from source.
-Self-update only works with prebuilt binaries released on GitHub https://github.com/jqnatividad/qsv/releases/latest"#
+Self-update only works with prebuilt binaries released on GitHub https://github.com/dathere/qsv/releases/latest"#
             );
         }
     } else {


Test patch:
diff --git a/.github/workflows/test-publish-nightly.yml b/.github/workflows/test-publish-nightly.yml
index ad8cc7a79..25c5df1ff 100644
--- a/.github/workflows/test-publish-nightly.yml
+++ b/.github/workflows/test-publish-nightly.yml
@@ -117,7 +117,7 @@ jobs:
     - name: Download latest release zip
       uses: robinraju/release-downloader@v1.11
       with:
-        repository: "jqnatividad/qsv"
+        repository: "dathere/qsv"
         latest: false
         tag: "publish-testing"
         token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/tests/test_luau.rs b/tests/test_luau.rs
index 2deb93eb8..a22bd1237 100644
--- a/tests/test_luau.rs
+++ b/tests/test_luau.rs
@@ -460,7 +460,7 @@ BEGIN {
     csv_indexed = qsv_autoindex();
 
     us_states_lookup_headers = qsv_register_lookup("us_states", 
-      "https://raw.githubusercontent.com/jqnatividad/qsv/master/resources/test/us-states-lookup.csv", 100)
+      "https://raw.githubusercontent.com/dathere/qsv/master/resources/test/us-states-lookup.csv", 100)
 
     -- note how we use the qsv_log function to log to the qsv log file
     qsv_log("debug", " _INDEX:", _INDEX, " _ROWCOUNT:", _ROWCOUNT, " csv_indexed:", csv_indexed)
diff --git a/tests/test_sample.rs b/tests/test_sample.rs
index 25ce20722..27b9537f9 100644
--- a/tests/test_sample.rs
+++ b/tests/test_sample.rs
@@ -146,7 +146,7 @@ fn sample_seed_url() {
     let mut cmd = wrk.command("sample");
     cmd.args(["--seed", "42"])
         .arg("5")
-        .arg("https://github.com/jqnatividad/qsv/raw/master/resources/test/aliases.csv");
+        .arg("https://github.com/dathere/qsv/raw/master/resources/test/aliases.csv");
 
     wrk.assert_success(&mut cmd);
 
diff --git a/tests/test_snappy.rs b/tests/test_snappy.rs
index 4171bb4b5..27f89cb4e 100644
--- a/tests/test_snappy.rs
+++ b/tests/test_snappy.rs
@@ -68,7 +68,7 @@ fn snappy_decompress_url() {
 
     let mut cmd = wrk.command("snappy");
     cmd.arg("decompress")
-        .arg("https://github.com/jqnatividad/qsv/raw/master/resources/test/boston311-100.csv.sz");
+        .arg("https://github.com/dathere/qsv/raw/master/resources/test/boston311-100.csv.sz");
 
     let got: String = wrk.stdout(&mut cmd);
 
diff --git a/tests/test_sniff.rs b/tests/test_sniff.rs
index fc7e19325..667173507 100644
--- a/tests/test_sniff.rs
+++ b/tests/test_sniff.rs
@@ -76,7 +76,7 @@ fn sniff_url_notcsv() {
     let wrk = Workdir::new("sniff_url_notcsv");
 
     let mut cmd = wrk.command("sniff");
-    cmd.arg("https://github.com/jqnatividad/qsv/raw/master/resources/test/excel-xlsx.xlsx");
+    cmd.arg("https://github.com/dathere/qsv/raw/master/resources/test/excel-xlsx.xlsx");
 
     let got_error = wrk.output_stderr(&mut cmd);
 
@@ -121,7 +121,7 @@ fn sniff_justmime_remote() {
 
     let mut cmd = wrk.command("sniff");
     cmd.arg("--just-mime")
-        .arg("https://github.com/jqnatividad/qsv/raw/master/resources/test/excel-xls.xls");
+        .arg("https://github.com/dathere/qsv/raw/master/resources/test/excel-xls.xls");
 
     let got: String = wrk.stdout(&mut cmd);
 
@@ -134,7 +134,7 @@ fn sniff_url_snappy() {
     let wrk = Workdir::new("sniff_url_snappy");
 
     let mut cmd = wrk.command("sniff");
-    cmd.arg("https://github.com/jqnatividad/qsv/raw/master/resources/test/boston311-100.csv.sz");
+    cmd.arg("https://github.com/dathere/qsv/raw/master/resources/test/boston311-100.csv.sz");
 
     wrk.assert_success(&mut cmd);
 
@@ -185,7 +185,7 @@ fn sniff_url_snappy_noinfer() {
     let wrk = Workdir::new("sniff_url_snappy_noinfer");
 
     let mut cmd = wrk.command("sniff");
-    cmd.arg("https://github.com/jqnatividad/qsv/raw/master/resources/test/boston311-100.csv.sz")
+    cmd.arg("https://github.com/dathere/qsv/raw/master/resources/test/boston311-100.csv.sz")
         .arg("--no-infer");
 
     let got: String = wrk.stdout(&mut cmd);
diff --git a/tests/test_validate.rs b/tests/test_validate.rs
index 0fa1f30a3..5bb29aa3b 100644
--- a/tests/test_validate.rs
+++ b/tests/test_validate.rs
@@ -362,7 +362,7 @@ fn validate_adur_public_toilets_dataset_with_json_schema_url() {
 
     // run validate command
     let mut cmd = wrk.command("validate");
-    cmd.arg("data.csv").arg("https://raw.githubusercontent.com/jqnatividad/qsv/master/resources/test/public-toilets-schema.json");
+    cmd.arg("data.csv").arg("https://raw.githubusercontent.com/dathere/qsv/master/resources/test/public-toilets-schema.json");
 
     wrk.output(&mut cmd);